Является ли python package virtualenv необходимым, когда я использую python 3.3?
Я смотрел Cythoph Gohlke python пакеты, и я заметил, что есть пакет Virtualenv для Python 3.3.
Поскольку в стандартной библиотеке python v3.3 есть пакет venv, мне было интересно, есть ли у него возможность установить этот пакет отдельно.
Изменить: из документации обоих пакетов virtualenv 1.8.2 и venv Я могу сказать, что в стандартном библиотечном пакете venv отсутствуют функциональные возможности
-
--no-site-packages
опция
- выбор между setuptools или распространением
- невозможность установки pip, так как она недоступна в установке python по умолчанию.
- нет настройки префикса приглашения внутри виртуальной среды
--prompt=PROMPT
Если есть другие отличия, которые я не смог обнаружить, напишите их здесь.
Ответы
Ответ 1
Как правило, пакет virtualenv не требуется при использовании python3.3 или новее, поскольку он был включен в стандартную библиотеку через PEP 405. Как вы заметили в вопросе, существуют некоторые относительно небольшие различия между последними версиями virtualenv и венским пакетом в стандартной библиотеке. Частично (например, --no-site-packages
) это связано с различными реализациями. Поскольку venv
находится в стандартной библиотеке, ему не нужно перескакивать через некоторые из искаженных обручей, которые virtualenv
делает для создания автономной установки python, такой как копирование большей части модуля python site
.
Лучший ресурс - это действительно прочитать PEP.
Ответ 2
для вопроса
Требуется ли виртуальный виртуальный пакет python с venv в stdlib?
(или каковы различия?)
-
--no-site-packages
- значение по умолчанию для обоих. Опция --system-site-packages
существует, но она сломана
- распространять устарел... здесь ничего не видно
- Начиная с Python3.4, securitypip предоставит pip внутри virtualenv. Чтобы заставить его работать с Ubuntu/Debian, обязательно установите пакет
python3-venv
- Здесь нет изменений.
Когда venv был впервые анонсирован, я надеялся, что он попадет в режим обслуживания, чтобы исправить ошибки в "virtualenv для старых питонов", и все события сместили бы фокус на stdlib venv. Я не уверен в цели проекта/дорожной карте для virtualenv, но я боюсь, что то, чего я надеялся, не происходит. Итак, по крайней мере, пока я продолжаю использовать оригинальный virtualenv.
Ответ 3
pyvenv был рекомендованным инструментом для создания виртуальных сред для Python 3.3 и 3.4
Начиная с версии python 3.5:
python3 -m venv
venv - встроенный модуль с доступом к внутренним компонентам python
pyvenv устарел в 3.6
Источник: https://docs.python.org/3/library/venv.html