2014-04-01 41 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設置中列出)

相關問題