2013-09-20 5 views
18

Virtualenvwrapper - это удобная оболочка вокруг виртуального виджета Python.Использует ли virtualenvwrapper с Python3.3 означает, что я не могу (или не должен) использовать pyvenv?

Python 3.3 корабли с pyvenv встроены в стандартную библиотеку, которая направлена ​​на отмену virtualenv.

Но если я устанавливаю Virtualenvwrapper на Python3.3, он все равно устанавливает virtualenv, заставляя меня полагать, что он не использует «pyvenv» под обложками.

Предположительно, это не имеет значения - если я хочу использовать virtualenvwrapper на Python3.3, я должен с радостью позволить ему использовать virtualenv вместо pyvenv и будет (на данный момент) не страдать от последствий?

+1

Кажется целесообразным использовать virtualenvwrapper с pyvenv, но с некоторыми gotchas - http://railslide.io/pyvenv-virtualenvwrapper.html – mloskot

ответ

31

Извините, этот ответ немного задерживается. pyvenv делает не стремится к замене virtualenv, ведь virtualenv в Python 3 зависит от стандартного модуля библиотеки venv.

Команда pyvenv создает абсолютно минимальную виртуальной среды, в которую можно установить другие пакеты.

Питон 3 версии virtualenv фактически подклассы реализации стандартной библиотеки и обеспечивает крючки для автоматической установки Setuptools и пипа в окружающую среду, которая pyvenv не делает на своем собственном.

Насколько я знаю virtualenvwrapper зависит от virtualenv только потому, что mkvirtualenv или mkproject команда позволяет определить пакеты для установки в новую среду, это работает только потому, что virtualenv будут уже установлены Setuptools и пип.

Итак, чтобы ответить на ваш вопрос, я считаю, что вы должны иметь возможность использовать virtualenvwrapper в средах, созданных pyvenv, до тех пор, пока вы будете следовать соглашениям virtualenvwrapper о том, где разместить вещи, и вы либо вручную устанавливаете setuptools и pip в среду, либо не выполняете используйте любые функции управления пакетами virtualenvwrapper.

+1

Wow. Не просто ясный и ясный, но и ответ не слишком далеко от того, который я хотел услышать. Большое спасибо. –

+10

В Python 3.4 Pyenv действительно устанавливает пип. https://docs.python.org/3/library/venv.html – FutureNerd

+0

Также (в 3.3, если не ранее) pyvenv включает (ссылки на) системные и пользовательские пакеты-сайты, когда пакеты '--system-site-пакеты 'используется. – FutureNerd