2014-04-01 15 views
11

Ich habe Python 2.7.6 und 3.4.0 auf meinem Computer. Die Version 2.7 ist auf meinem Weg. Ich würde gerne ein virtualenv mit 3.4 einrichten. Es gibt viele Beiträge auf SO und anderswo, die ich schlage vor, die folgenden von einer Eingabeaufforderung Sie:Verwenden von VirtualEnv mit mehreren Python-Versionen unter Windows

virtualenv -p c:\python34 myvirtualenv 

aber das ist für mich nicht funktioniert. Die Konsolensitzung hat Administratorrechte und UAC ausgeschaltet ist, jedoch bekomme ich ein Berechtigungsproblem:

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 

Ich habe auch versucht, es speziell auf die 3.4-Version von virtualenv zeigen, ohne jedoch den Weg zu ändernden es endet eine gemischte Ausführung Tasche von 2,7 und 3,4 Python-Dateien.

Der einzige Weg, den ich finden konnte, um meine virtuelle Umgebung einzurichten, ist, meinen Pfad auf 3.4 zu ändern, führen Sie virtualenv, dann setzen Sie meinen Pfad auf 2.7, der den Punkt des Python-Schalters auf virtualenv besiegt.

Dank

Antwort

16

Besser:

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

Wenn Sie nicht über die py.exe Launcher Sie (aber es sollte installiert sein) py -3.4 mit c:\Python34\python.exe (vorausgesetzt, das Standardverzeichnis)


ersetzen

Dies funktioniert wegen der handlichen Dandy, Windows-VersionIngest, super schöne Laufzeit-Picker py.exe

Standardmäßig wird py.exe auf einer Windows-Installation vorhanden sein (ich denke, es kommt mit 2.7, ich weiß, dass es mit 3+). Wenn Sie py ausführen, dann wird es nach einigen Umgebungsvariablen suchen oder Sie können das mit einer bestimmten Verison-Nummer überschreiben (in Ihrem Fall -2.7 oder -3.4) Sie können die .4 verlassen und es wird die "größte" Nebenversionsnummer wählen.

Sie können auch verwenden, um Python-Skripte auszuführen. Wenn Sie eine Hash-Bang-Zeile oben in Ihrem Skript #!python3 setzen und sie py myscript.py nennen, wählt sie die richtige Version von Python aus, indem sie die erste Zeile des Skripts durchsucht und nach einer Versionsnummer sucht. Diese

ist cool, weil Sie so etwas wie #!/usr/bin/env python3.4 in dem Anfang des Skripts setzen können und führen Sie es unter Windows mit py oder auf Linux von

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

ziemlich nützlich.

+0

Das funktioniert, danke. Ich bin nicht vertraut mit Py. Ich muss nachsehen. – marcp

+0

@marcp, einige Informationen hinzugefügt (obwohl Sie es auch in der offiziellen Dokumentation finden können) –

+0

@ oenpellis Lösung funktioniert für mich. Fügen Sie einfach python.exe zum Pfad im Parameter -p hinzu. – RandyTek

8

Unter Windows müssen Sie ausführen:

virtualenv -p c:\python34.exe myvirtualenv 

Die .exe am Ende den Unterschied macht.

+1

Nur eine kleine Notiz "virtualenv -p c: \ python34 \ python.exe myvirtualenv" funktioniert für mich – RandyTek

4

Hatte damit eine Weile herumspielen müssen, um es richtig zu machen. Hatte Python 2.7.9 installiert (Windows 7), wollte das neueste Python3-Release für eine Runde nehmen. Nach der Installation von Python3.4.3 Ich ging in dem Verzeichnis bar und erstellt eine virtuelle Umgebung foo mit diesem Befehl:

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

Es dauerte einige Zeit, zu verstehen, dass ich brauchte die Python3.4.3 Dolmetscher in der ‚normalen‘ Art und Weise zu installieren, die ich ursprünglich dachte, es würde mit virtualenv installiert werden. Das wurde in this answer erklärt. Ich habe den Pythonpfad in Windows nach der Installation von Python3.4.3 nicht berührt.

0

Wenn oben genannten Maßnahmen nicht funktionieren, versuchen Sie dies (mit Venv statt virtualenv):

python -m venv venvname 

(ersetzen Python mit python.exe Weg, wenn es nicht in die Umgebungsvariable Pfadeinstellungen aufgeführt wird)

Verwandte Themen