2014-04-01 36 views
11

我在我的机器上安装了python 2.7.6和3.4.0。 2.7版本在我的道路上。我想用3.4创建一个virtualenv。在SO和其他地方有很多贴子暗示我通过命令提示符执行以下操作:在Windows上使用VirtualEnv和多个Python版本

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 

我也尝试过专门指向3.4版本的virtualenv的,但没有改变路径它结束了执行混合包2.7和3.4 python文件。

我可以找到设置我的虚拟环境的唯一方法是将我的路径更改为3.4,运行virtualenv,然后将我的路径重置为2.7,这违背了virtualenv上的python开关。

感谢

回答

16

更好:

py -3.4 -m venv c:\path\to\wherever\you\want\it 

如果没有py.exe发射器(但应安装)您可以替换py -3.4c:\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版本。

这是很酷的,因为你可以通过做

$ chmod +x myscript.py 
$ ./myscript.py 

非常有用的放像#!/usr/bin/env python3.4在脚本的顶部,并在Windows上运行py它,或者在Linux上。

+0

这有用,谢谢。我不熟悉py。我得看看它。 – marcp

+0

@marcp,增加了一些信息(尽管你也可以在官方文档中找到它) –

+0

@ oenpelli的解决方案适用于我。只需将python.exe添加到-p参数中的路径即可。 – RandyTek

8

在Windows下你需要运行:

virtualenv -p c:\python34.exe myvirtualenv 

上年底的.exe文件,使所有的差异。

+1

只是一个小纸条“virtualenv -p c:\ python34 \ python.exe myvirtualenv”适用于我 – RandyTek

4

不得不玩这个一段时间才能把它做好。如果安装了Python2.7.9(Windows 7),那么就想采用最新的Python3版本。安装Python3.4后。3我到目录bar并创建了一个虚拟环境FOO用这个命令:

virtualenv -p c:\Python34\python.exe foo 

我花了相当长的一段时间来了解我需要安装Python3.4.3解释在“正常”的方式,我原来以为它会被安装使用virtualenv。这在this answer中有解释。安装Python3.4.3后,我没有碰到Windows中的pythonpath。

0

如果上述措施无效,请尝试这种(使用VENV代替的virtualenv):

python -m venv venvname 

(更换python.exe路径蟒蛇,如果它不是在环境变量PATH设置中列出)

相关问题