Создайте виртуальную среду Python 3

13

Я установил python3-virtualenvна Lubuntu 15.1, используя официальный пакет Ubuntu apt-get install python3-virtualenv. Официальной документации , указывает на то, что простой virtualenv .в моем каталоге проекта должно быть достаточно , чтобы создать venv. Это ничего не делает, потому which virtualenvчто ничего не делает. (Ничего от which python-virtualenvа which python3-virtualenvтакже).

Информация о пакете после его установки говорит о том, что он установлен /usr/lib/python3/dist-packages/virtualenv.py, поэтому я вызываю его в python3. Это дает мне это:

$ python3 /usr/lib/python3/dist-packages/virtualenv.py .
Running virtualenv with interpreter /usr/bin/python2
New python executable in ./bin/python2
Also creating executable in ./bin/python
Installing setuptools, pip...done.

Да, когда я смотрю, все в ./bin это python2. Является ли Python3-virtualenv из Ubuntu фиктивным пакетом для Python2?

Официальная документация по Python гласит: используйте другой пакет: python3-venv . Кажется, это работает, когда я pyvenv ., с Python3 вещи в ./binкаталоге.

Как я могу успешно создать Python 3 virtualenv?

Эшер
источник
Патч, который изменяет это поведение в Debian. salsa.debian.org/python-team/modules/python-virtualenv/blob/… Мне бы хотелось понять мыслительный процесс, использованный при добавлении этого патча.
Винни

Ответы:

24

venvэто удобный сценарий для создания виртуальных envs, но не полностью заменяет все, что virtualenvможет сделать. Использование любого из них подходит для большинства случаев. virtualenvне устарел.

python3 -m venvработает после установки, python3-venvпотому что Debian удаляет некоторые скрипты из базового пакета Python. по какой-то причине python3-virtualenvне ставит virtualenvскрипт на ваш путь, но python-virtualenvделает, и будет работать нормально для любой версии.

Не важно, для какой версии virtualenvустановлена версия , она может передать envs для любой установленной версии, передав -p pythonX(где X - версия). venvБудучи более простым, он будет создавать только envs той версии, из которой он запущен, и доступен только с версии 3.3.

$ sudo apt-get install python-virtualenv
$ virtualenv -p python3 env
$ source ./env/bin/activate
$ sudo apt-get install python3-venv
$ python3 -m venv env
$ source ./env/bin/activate
davidism
источник