LINUX.ORG.RU

Python 3.7+ виртуальные окружения и установка зависимостей

 , ,


0

3

Вижу разные рекомендации по использованию virtualenv, venv, pipenv, conda, etc и всяческих оберток над ними.

Начиная с версии 3.3 часть функционала virtualenv перенесли во встроенный venv и оф. документация рекомендует venv.

Note If you are using Python 3.3 or newer, the venv module is the preferred way to create and manage virtual environments. venv is included in the Python standard library and requires no additional installation. If you are using venv, you may skip this section.

Однако документация к virtualenv говорит, что он богаче своими возможностями.

virtualenv is a tool to create isolated Python environments. Since Python 3.3, a subset of it has been integrated into the standard library under the venv module. Note though, that the venv module does not offer all features of this library (e.g. cannot create bootstrap scripts, cannot create virtual environments for other python versions than the host python, not relocatable, etc.).

Собственно, что предпочтительнее использовать и почему? А также что использовать для установки зависимостей: pipenv, poetry, … ?

Прошу специалистов дать краткие пояснения, чтобы не было каши в голове.

★★★★★

python -m venv

А также что использовать для установки зависимостей: pipenv, poetry

pip

и почему?

ибо ваистену. гугли бритву Оккама

/thread

eternal_sorrow ★★★★★
()
Последнее исправление: eternal_sorrow (всего исправлений: 2)

Не специалист, но всегда юзаю:

pip3 install virtualenv
virtualenv -p python3 <env_name>

Иногда ещё вижу как рекомендуют разделение зависимостей в слаке/nixos/контейнеризация(docker, etc..)

Cirno
()

Используют в 90% pip + virtualenv, в новых проектах частенько venv. Бери что тебе удобнее и не парься, различия «чисто формальные» с т.з. сисадмина. Мне venv показался удобным в разработке, но менее удобным в деплое, в то время он только появился и было мало документации по нему.

menangen ★★★★★
()

Pipenv. Удобен тем, что есть разделение на dev зависимости.

hound
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.