Рейтинг:0

виртуальная среда python на скользящем дистрибутиве (Arch)

флаг gb

Я большой поклонник модели непрерывного распространения. Мне нужна помощь с одной икотой. когда я создаю виртуальную среду в python для изоляции проекта, все работает отлично, пока мой скользящий дистрибутив не обновит версии python.

Когда это происходит, мой проект Python больше не работает, поэтому я уничтожаю свой venv и создаю новый. Кажется, мне не следует быть таким радикальным в своем подходе. Это занимает некоторое время, и по мере роста числа проектов это плохо масштабируется.

Вот как я создаю свои venvs:

$ python -m venv venv
$ источник venv/bin/активировать
$ команда -v питон
$ python -m pip install --upgrade pip
$ python -m pip install django # или что-то еще
$ python --version && python -m django --version
  1. я неправильно создаю свой venv?
  2. если обновление системного python сломает мои venvs, есть ли элегантный способ исправить это, а не просто воссоздать venv?
флаг in
Вот почему скользящие дистрибутивы не годятся для стабильной бизнес-среды.
djdomi avatar
флаг za
используйте контейнер или что-то похожее на Archiv the target imho
Рейтинг:2
флаг cn

Предположим, что venv был создан с помощью python3.9 прямо перед выпуском python3.10. venv создаст каталог bin, символически связанный с системным python, как в venv/bin/python3 -> /usr/bin/python3 Этот неверсионный двоичный файл python сам по себе может не быть проблемой. Однако каталоги site-packages зависят от основной версии, из-за чего ваши проекты python3.9 больше не работают.

Я считаю venvs неизменяемым набором данной версии Python и установленных библиотек. Когда происходят серьезные изменения, разрушение и воссоздание кажется разумным. Они легкие. Конечно, мне не приходилось делать это неоднократно, как вам. Подумайте об улучшении вашей автоматизации, чтобы вы могли перестраивать все это сразу по требованию.

Arch не заинтересован в поддержке Python в течение очень долгого времени, исходя из концепции их скользящего дистрибутива. Возможно, вы сможете найти пользовательский пакет, поддерживающий, скажем, python39 в AUR, и вам будет удобно, но, возможно, нет. Подумайте о переходе на дистрибутив с долгосрочной поддержкой, чтобы у вас было больше времени на данную основную версию Python. Может быть ограничен контейнерами или чем-то еще, не нужно заменять все, что вам нравится в Arch.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.