virtualenvwrapper та Python 3


119

Я встановив python 3.3.1 на lucid ubuntu і успішно створив virtualenv, як показано нижче

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

це створило папку envpy331в моєму домашньому режисері.

Я також virtualenvwrapperвстановив. Але в документах підтримуються лише 2.4-2.7версії. Чи pythonхтось намагався організувати python3virtualenv? Якщо так, ви можете мені сказати, як?


1
Проблема в тому, що піп все ще є пітп2 python2, чи не так? Я думаю, що pyvenvзамість цього потрібно використовувати virtualenvwrappervirtualenv
erikbwork

Відповіді:



240

Якщо у вас вже встановлений python3, а також virtualenvwrapper, єдине, що вам потрібно зробити, щоб використовувати python3 з віртуальним середовищем, - це створити середовище, використовуючи:

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

Або, (принаймні, на OSX за допомогою варіння):

mkvirtualenv --python=`which python3` nameOfEnvironment

Почніть використовувати середовище, і ви побачите, що як тільки ви введете python, ви почнете використовувати python3


12
Мені не дуже вдало працювати на OSX з 2.7.8 та 3.4.1, встановленими поруч через пивоваріння. Однак, змінивши його на "mkvirtualenv --python =` який 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)"- тоді легко створити virtualenvs для 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 для кожної нової env.
Joost

@Joost Це справедливо. Я особисто відчуваю, що це зворотний бік, але я бачу, чому люди воліють це.
AlexLordThorsen

21

Тепер virtualenvwrapper дозволяє вам вказати виконуваний пітон без шляху.

Тож (як мінімум на OSX) mkvirtualenv --python=python3 nameOfEnvironmentвистачить.


2
Потрібно два тире. Редагували б, але SE вимагає 6 символів, а для зміни потрібен лише один.
jwogrady

20

На Ubuntu; з використанням mkvirtualenv -p python3 env_nameзавантажує virtualenv з python3.

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


1
python --versionдля відображення версії
Dos

20

Ви можете додати це у свій .bash_profile або подібне:

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

Потім використовуйте mkvirtualenv3замість того, mkvirtualenvколи ви хочете створити середовище python 3.


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

створити середовище. Це припускаючи, що у вас / pyrion3 в / usr / bin / python3 та virtualenv-3.4 в /usr/local/bin/virtualenv-3.4.


Просто використовуйте which python2.4або which python3.5або which python3.6знайти директорію для--python=DIRECTORY
Santhosh


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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.