2014-04-01 6 views
11

Makinemde python 2.7.6 ve 3.4.0 var. 2.7 versiyonu benim yolumda. 3.4 kullanarak bir virtualenv kurmak istiyorum.VirtualEnv'yi birden çok Python sürümüyle Windows'ta kullanma

virtualenv -p c:\python34 myvirtualenv 

ama bu benim için çalışmaz: SO ve başka yerlerde önermek ben bir komut isteminden aşağıdaki do birçok ilanı yok. Konsol oturumu yönetici ayrıcalığı vardır ve UAC kapalı, ancak bir izin sorunu olsun:

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 

Ben de özellikle virtualenv 3.4 sürümüne işaret denedi, ama yolunu değiştirmeden bu karışık yürütme biter 2.7 ve 3.4 python dosyalarının çantası.

Sanal ortamımı kurmak için bulabildiğim tek yol, yolumu 3.4 olarak değiştirmek, virtualenv komutunu çalıştırmak ve yolumu, sanal makine üzerindeki python anahtarının noktasını bozan 2.7 değerine sıfırlamaktır.

Teşekkür

cevap

16

Daha iyi:

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

Eğer (ancak yüklü olmalıdır) Eğer c:\Python34\python.exe ile py -3.4 (varsayılan konumu varsayarak) yerini alabilir


py.exe başlatıcısı yoksa

Bu, kullanışlı, Windows sürümlü, süper güzel çalışma zamanı seçicisi py.exe nedeniyle çalışır

Varsayılan olarak, Windows yüklemesinde py.exe bulunacaktır (bence 2,7 ile geliyor, bunun 3+ ile çalıştığını biliyorum). py'u çalıştırdığınızda, bazı ortam değişkenlerini arayabilir veya bunu belirli bir verison numarasıyla (sizin durumunuzda -2.7 veya -3.4) geçersiz kılabilirsiniz. .4'u bırakabilirsiniz ve "en büyük" küçük sürüm numarasını seçecektir.

Python komut dosyalarını çalıştırmak için numaralı telefonu da kullanabilirsiniz. Komut dosyanızı #!python3 komutunun üst kısmına bir hash-bang satırı koyarsanız ve py myscript.py numaralı telefonu arayarak, komut dosyasının ilk satırını arayarak ve bir sürüm numarası arayarak başlamak için doğru Python sürümünü seçer. Eğer

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

Oldukça kullanışlı

yaparak linux üzerinde script üst #!/usr/bin/env python3.4 gibi bir şey koymak ve py ile Windows üzerinde çalıştırmak veya çünkü

Bu, serin.

virtualenv -p c:\python34.exe myvirtualenv 

ucunda .exe farkı yaratan:

+0

Bu çalışıyor, teşekkürler. Py ile aşina değilim. Bakmam gerekecek. – marcp

+0

@marcp, bazı bilgileri ekledi (herşeyi resmi dokümanlarda da bulabilirsiniz) –

+0

@ oenpelli'nin çözümü benim için çalışıyor. Sadece python.exe'yi -p parametresindeki yola ekleyin. – RandyTek

8

altında, Windows çalıştırmak gerekir.

+1

Sadece küçük bir not "virtualenv -p c: \ python34 \ python.exe myvirtualenv" benim için çalışıyor – RandyTek

4

Doğru bir şekilde elde etmek için bir süre bununla uğraşmak zorunda kaldı. Python2.7.9 yüklendiyse (Windows 7), bir spin için en son Python3 sürümünü almak istedi. Python3.4'ü yükledikten sonra.Başlangıçta, Ben 'normal' moda Python3.4.3 tercüman yüklemek için gereken anlamak için biraz zamanımı aldı

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

: 3 Ben dizin bara gitti ve bu komutla bir sanal ortam foo yarattı virtualenv KULLANIMI yüklü olacağını düşündüm. Bu this answer'da açıklanmıştır. Python3.4.3'ü yükledikten sonra Windows'da pythonpath'a dokunmadım.

0

Yukarıdaki önlemler çalışmıyorsa, (venv kullanarak yerine Virtualenv) bu deneyin:

python -m venv venvname 

(o ortam değişkeni yol ayarlarında listede yoksa python.exe yolu ile piton değiştirin)