virtualenvwrapper и Python 3

119

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

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

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

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

Дэймон
источник
1
Проблема в том, что pip по-прежнему является pip python2, не так ли? Я думаю, что вам нужно использовать virtualenvwrapper pyvenvвместоvirtualenv
erikbwork

Ответы:

240

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

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

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

mkvirtualenv --python=`which python3` nameOfEnvironment

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

Джонатан
источник
12
У меня не совсем сработало на OSX с 2.7.8 и 3.4.1, установленными бок о бок через brew. Однако изменение его на "mkvirtualenv --python =` which python3` nameOfEnvironment "сработало отлично.
Крис Доггетт,
@ChrisDoggett то же самое в Ubuntu 14.10.
z0r
4
В Ubuntu команда будет такой: mkvirtualenv --python = / usr / bin / python3 your-env-name
Василий Топоров
2
Если вы используете bash, вы можете сделать замену, чтобы сохранить строку -mkvirtualenv --python=$(which python3) nameOfEnvironment
d4nyll
что действительно здорово, так это создать следующий псевдоним bash alias mkvirtualenv3="mkvirtualenv --python=$(which python3.6)"- тогда легко создать virtualenv для python 2 или 3
robertmoggach
52

Вы можете заставить 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.
Илиян Бобев
источник
2
Это фактически устарело. Вместо того, чтобы устанавливать переменную среды, вы должны использовать параметр --python, который в настоящее время предлагает Джонатан.
AlexLordThorsen
6
@Rawrgulmuffins Почему? Это избавляет от необходимости указывать версию Python для каждого нового окружения.
Joost
@Joost Это справедливый вопрос. Я лично считаю, что это недостаток, но я понимаю, почему люди предпочли бы это.
AlexLordThorsen
21

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

Так что (по крайней мере, на OSX) mkvirtualenv --python=python3 nameOfEnvironmentхватит.

Питер Инь
источник
2
Требуется два тире. Можно было бы редактировать, но для SE требуется 6 символов, а для изменения нужен только один.
jwogrady
20

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

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

akashbw
источник
1
python --versionдля отображения версии
Dos
20

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

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

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

chorbs
источник
13

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

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.

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

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

Иоаннис Филиппидис
источник
0

Я добавил 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

Мустафа-Belkacim
источник