Использование VirtualEnv с несколькими версиями Python в windows
у меня есть Python 2.7.6 и 3.4.0 на моей машине. Версия 2.7 на моем пути. Я хотел бы настроить virtualenv с помощью 3.4. Есть много сообщений на SO и в других местах, которые предлагают мне сделать следующее из командной строки:
virtualenv -p c:python34 myvirtualenv
но это не работает для меня. Сеанс консоли имеет права администратора, и UAC выключен, однако я получаю проблему с разрешениями:
F:virtualenv>virtualenv -p c:python34 myenv
Running virtualenv with interpreter c:python34
Traceback (most recent call last):
File "c:python27scriptsvirtualenv-script.py", line 9, in <module>
load_entry_point('virtualenv==1.11', 'console_scripts', 'virtualenv')()
File "C:Python27libsite-packagesvirtualenv.py", line 779, in main
popen = subprocess.Popen([interpreter, file] + sys.argv[1:], env=env)
File "C:Python27libsubprocess.py", line 709, in __init__
errread, errwrite)
File "C:Python27libsubprocess.py", line 957, in _execute_child
startupinfo)
WindowsError: [Error 5] Access is denied
Я также пробовал это специально, указывая на версию 3.4 virtualenv, но без изменения пути он заканчивается выполнением смешанного пакета из 2.7 и 3.4 файлов python.
единственный способ настроить мою виртуальную среду-изменить мой путь на 3.4, запустить virtualenv, а затем сбросить мой путь до 2.7, что побеждает точку переключателя python на virtualenv.
спасибо
4 ответов
лучше:
py -3.4 -m venv c:\path\to\wherever\you\want\it
если у вас нет py.exe
лаунчер (но он должен быть установлен) вы можете заменить py -3.4
С c:\Python34\python.exe
(предполагается по умолчанию)
это работает из-за удобного-денди, Windows-versioningest, супер хороший выбор времени выполнения py.exe
по умолчанию py.exe
будет присутствовать при установке Windows (я думаю, что он поставляется с 2.7, я знаю, что это делает с 3+). При запуске py
затем он будет искать некоторые переменные среды или вы можете переопределить это с помощью определенного номера версии (в вашем случае -2.7
или -3.4
) вы можете оставить у .4
и он выберет" самый большой " номер минорной версии.
вы можете и используйте его для запуска скриптов Python. Если вы поместите строку хэш-взрыва в верхней части своего скрипта #!python3
и называть это py myscript.py
затем он выберет правильную версию Python для начала, путем поиска первой строки скрипта и поиска номер версии.
это круто, потому что вы можете поставить что-то вроде #!/usr/bin/env python3.4
в верхней части скрипта и запустить его на Windows с py
, или в linux, выполнив
$ chmod +x myscript.py
$ ./myscript.py
очень полезно.
под Windows вам нужно запустить:
virtualenv -p c:\python34.exe myvirtualenv
The .exe на конце делает всю разницу.
пришлось поиграть с этим некоторое время, чтобы получить это право. Был Python2.7.9 установлен (Windows 7), хотел взять последнюю версию Python3 для спина. После установки Python3.4.3 я пошел в панель каталогов и создал виртуальную среду foo с помощью этой команды:
virtualenv -p c:\Python34\python.exe foo
Мне потребовалось некоторое время, чтобы понять, что мне нужно установить Python3.4.Интерпретатор 3 в "нормальном" стиле, я изначально думал, что он будет установлен с помощью virtualenv. Это было объяснено в ответ. Я не касался pythonpath в Windows после установки Python3.4.3.
Если вышеуказанные меры не работают, попробуйте это (используя venv вместо virtualenv):
python -m venv venvname
(замените python на python.exe-путь, если он не указан в настройках пути переменной среды)