virtualenvwrapper и Python 3

Я установил python 3.3.1 на ubuntu lucid и успешно создал виртуальную среду, как показано ниже.

virtualenv envpy331 --python=/usr/local/bin/python3.3

это создало папку envpy331 в моем домашнем каталоге.

У меня также установлен virtualenvwrapper. Но в документах поддерживаются только 2.4-2.7 версии python.. Кто-нибудь пробовал организовать python3 virtualenv? Если да, то можете сказать как?


person damon    schedule 20.04.2013    source источник
comment
Проблема в том, что пип по-прежнему остается пипсом python2, не так ли? Я думаю, что вы хотите, чтобы virtualenvwrapper использовал pyvenv вместо virtualenv   -  person erikbwork    schedule 27.05.2015


Ответы (9)


последняя версия virtualenvwrapper протестирована под Python3.2. Скорее всего, он будет работать и с Python3.3.

person unutbu    schedule 20.04.2013

Если у вас уже установлен python3, а также virtualenvwrapper, единственное, что вам нужно сделать, чтобы использовать python3 с виртуальной средой, — это создать среду, используя:

which python3 #Output: /usr/bin/python3
mkvirtualenv --python=/usr/bin/python3 nameOfEnvironment

Или (по крайней мере, на OSX с использованием brew):

mkvirtualenv --python=`which python3` nameOfEnvironment

Начните использовать среду, и вы увидите, что как только вы наберете python, вы начнете использовать python3.

person Jonathan    schedule 09.06.2014
comment
У меня не совсем работало на OSX с 2.7.8 и 3.4.1, установленными бок о бок через brew. Однако изменение его на mkvirtualenv --python=`what python3` nameOfEnvironment работало отлично. - person Chris Doggett; 13.08.2014
comment
@ChrisDoggett то же самое в Ubuntu 14.10. - person z0r; 06.03.2015
comment
В Ubuntu команда будет выглядеть так: mkvirtualenv --python=/usr/bin/python3 your-env-name - person Vasiliy Toporov; 18.03.2015
comment
Если вы используете bash, вы можете сделать замену, чтобы сохранить строку - mkvirtualenv --python=$(which python3) nameOfEnvironment - person d4nyll; 23.02.2017
comment
что действительно здорово, так это создать следующий псевдоним bash alias mkvirtualenv3="mkvirtualenv --python=$(which python3.6)" - тогда легко создать virtualenvs для python 2 или 3 - person rjmoggach; 25.01.2018
comment
Если вы хотите использовать which python3 или $(which python3), убедитесь, что вы НЕ находитесь в другой виртуальной среде, иначе вы получите виртуальный путь к python 3, который на самом деле не то, что вам нужно, то есть ~/.virtualenvs/the_other_env/bin/python3 - person Mark Chackerian; 02.03.2018
comment
Я получаю сообщение об ошибке ImportError: No module named virtualenv. У меня установлен Python 3.7 рядом с Python 2.7.15. - person Mikebarson; 08.11.2018
comment
@Mikebarson Вам нужно установить virtualenv, это не встроенный модуль. - person Jonathan; 08.11.2018

Вы можете заставить virtualenvwrapper использовать собственный двоичный файл Python вместо того, с которым запускается virtualenvwrapper. Для этого вам нужно использовать переменную VIRTUALENV_PYTHON, которую использует virtualenv:

$ export VIRTUALENV_PYTHON=/usr/bin/python3
$ mkvirtualenv -a myproject myenv
Running virtualenv with interpreter /usr/bin/python3
New python executable in myenv/bin/python3
Also creating executable in myenv/bin/python
(myenv)$ python
Python 3.2.3 (default, Oct 19 2012, 19:53:16) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
person Iliyan Bobev    schedule 23.08.2013
comment
Это фактически устарело. Вместо того, чтобы устанавливать переменную среды, вы должны использовать параметр --python, который в настоящее время предлагает Джонатан. - person AlexLordThorsen; 27.01.2015
comment
@Rawrgulmuffins Почему? Это избавляет от необходимости указывать версию Python для каждой новой среды. - person Joost; 22.04.2015
comment
@Joost Это справедливое замечание. Я лично считаю, что это недостаток, но я понимаю, почему люди предпочитают это. - person AlexLordThorsen; 22.04.2015

virtualenvwrapper теперь позволяет указать исполняемый файл python без пути.

Так что (по крайней мере, на OSX) mkvirtualenv --python=python3 nameOfEnvironment будет достаточно.

person Peter Yin    schedule 06.12.2016
comment
Нужны две черточки. Редактировал бы, но SE требует 6 символов, а для изменения нужен только один. - person jwogrady; 27.03.2017

На Убунту; с помощью mkvirtualenv -p python3 env_name загружает virtualenv с помощью python3.

Внутри env используйте python --version для проверки.

person akashbw    schedule 23.05.2017
comment
python --version для отображения версии - person Dos; 30.01.2018

Вы можете добавить это в свой .bash_profile или аналогичный:

alias mkvirtualenv3='mkvirtualenv --python=`which python3`'

Затем используйте mkvirtualenv3 вместо mkvirtualenv, если вы хотите создать среду Python 3.

person dstandish    schedule 17.01.2018

Я нахожу это бегущим

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

а также

export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv-3.4

в командной строке Ubuntu заставляет mkvirtualenv использовать python3 и virtualenv-3.4. нужно еще сделать

mkvirtualenv --python=/usr/bin/python3 nameOfEnvironment

для создания среды. Предполагается, что у вас есть python3 в /usr/bin/python3 и virtualenv-3.4 в /usr/local/bin/virtualenv-3.4.

person CuriousGeorge    schedule 14.04.2015
comment
Просто используйте which python2.4 или which python3.5 или which python3.6, чтобы найти каталог для --python=DIRECTORY - person Santhosh; 08.03.2018

Этот публикация в системе отслеживания ошибок Bitbucket virtualenvwrapper может представлять интерес. Там упоминается, что большинство функций virtualenvwrapper работают с виртуальными средами venv в Питон 3.3.

person Ioannis Filippidis    schedule 10.07.2013

Я добавил export VIRTUALENV_PYTHON=/usr/bin/python3 к ~/.bashrc вот так:

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENV_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

затем запустите source .bashrc

и вы можете указать версию Python для каждого нового env mkvirtualenv --python=python2 env_name

person Mustapha-Belkacim    schedule 05.04.2020