我的机器上有python 2.7.6和3.4.0。 2.7版本在我的路上。我想用3.4建立一个virtualenv。在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:\python27\scripts\virtualenv-script.py", line 9, in <module>
load_entry_point('virtualenv==1.11', 'console_scripts', 'virtualenv')()
File "C:\Python27\lib\site-packages\virtualenv.py", line 779, in main
popen = subprocess.Popen([interpreter, file] + sys.argv[1:], env=env)
File "C:\Python27\lib\subprocess.py", line 709, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 957, in _execute_child
startupinfo)
WindowsError: [Error 5] Access is denied
我也尝试过专门指向virtualenv的3.4版本,但是如果没有改变路径,它最终会执行2.7和3.4 python文件的混合包。
我能找到设置我的虚拟环境的唯一方法是将我的路径改为3.4,运行virtualenv然后将我的路径重置为2.7,这会破坏virtualenv上的python开关点。
由于
答案 0 :(得分:21)
更好:
py -3.4 -m venv c:\path\to\wherever\you\want\it
如果您没有py.exe
启动器(但应该安装它),您可以将py -3.4
替换为c:\Python34\python.exe
(假设默认位置)
这是有效的,因为方便花哨,Windows版本提取,超级漂亮的运行时选择器py.exe
默认情况下,py.exe
将出现在Windows安装中(我认为它带有2.7,我知道它带有3+)。当您运行py
时,它会搜索某些环境变量,或者您可以使用特定的版权号覆盖(在您的情况下为-2.7
或-3.4
)您可以不使用{{1它会选择&#34;最大的&#34;次要版本号。
您也可以 使用它来运行Python脚本。如果你在脚本.4
的顶部放置一个哈希爆炸线并将其称为#!python3
,那么它将通过搜索脚本的第一行并搜索来选择正确的Python版本。对于版本号。
这很酷,因为您可以将py myscript.py
之类的内容放在脚本的顶部并在Windows上使用#!/usr/bin/env python3.4
运行,或者在Linux上运行
py
很有用。
答案 1 :(得分:10)
在Windows下,您需要运行:
virtualenv -p c:\python34.exe myvirtualenv
最后的.exe会有所不同。
答案 2 :(得分:6)
不得不玩这一段时间才能做到正确。如果安装了Python2.7.9(Windows 7),想要获取最新的Python3版本。安装Python3.4.3后,我转到目录栏并使用以下命令创建了一个虚拟环境foo:
virtualenv -p c:\Python34\python.exe foo
我花了很长时间才明白我需要以“正常”方式安装Python3.4.3解释器,我原本以为它将使用virtualenv进行安装。这在this answer中有所解释。安装Python3.4.3后,我没有触及Windows中的pythonpath。
答案 3 :(得分:0)
If above measures are not working, try this( using venv instead of virtualenv):
python -m venv venvname
(replace python with python.exe path if it is not listed in environment variable path settings)
答案 4 :(得分:0)
在Windows上使用GitBash时,我很难使它也正常工作。
我在Windows路径上安装了Python 3.6,但试图创建一个Python 2.7虚拟环境来测试旧项目。
最终通过以下方式使它起作用:
1. adding the C:\Python27 path to my Windows environment variables
2. virtualenv -p c:/python27/python.exe venvname
(在此之前,我不得不为添加virtualenv模块而烦恼)
答案 5 :(得分:0)
您可以像这样使用virtualenv命令
virtualenv --python=C:\python34\python.exe myvirtualenv
Python 3.7示例
virtualenv --python=C:\Users\hp\AppData\Local\Programs\Python\Python37\python.exe myenv