2009-09-12 20 views
9

Scheint jeder empfiehlt virtualenv für mehrere Python-Versionen (auf OSX), aber funktioniert es sogar mit Python 3.0? Ich habe es heruntergeladen, und es scheint nicht zu sein. Und ich verstehe nicht wirklich, wie es funktioniert. Können Sie env zu einer bestimmten Zeit einschalten oder so? Was ich will, ist, das System Python 2.5 (offensichtlich) zu lassen und python 3.1.1 mit Subversion pygame zu haben, um meine eigenen Sachen zu schreiben, und python 2.6 mit normalem stable pygame, um andere Dinge zu benutzen, wie pygame Spiele, die von pygame heruntergeladen wurden .org. Irgendeine Hilfe, wie man das erreicht? Vielen Dank.Python - Virtualenv, Python 3?

OK ich realisierte virtualenv ist nicht das, was ich suche.

+4

Ab Version 1.6 unterstützt virtualenv Python 3. –

Antwort

3

Ihr Use Case braucht eigentlich nicht virtualenv. Sie müssen nur verschiedene Python-Versionen installieren.

+0

Ich benutze nur die neueste Version, ich unterrichte mich selbst als Hobby, also ist es für niemanden wichtig, welche Version ich benutze. – mk12

+0

Also, für die Verwendung mit Pygame, denken Sie, ich sollte bei 2.6 bleiben? – mk12

+0

Ja, du solltest bei 2.6 bleiben. –

0

nicht sicher, ob ich Sie richtig verstanden habe, aber hier geht :)

Ich weiß nicht, über OS X, aber in Linux können Sie installieren beide 2.6 und 3. Dann können Sie entweder Python25 verwenden oder python3 oder ändern Sie den Symlink/usr/bin/python in die Version, die Sie standardmäßig verwenden möchten.

+0

Sprechen Sie über ohne virtualenv? – mk12

+0

Nein, ich spreche über die Verwendung mehrerer Python-Versionen. Soweit ich weiß, wird virtualenv verwendet, um mit Abhängigkeiten mehrerer Versionen zu arbeiten, nicht mit mehreren Python-Versionen. Aber ich könnte falsch liegen :-) – l3dx

+0

ohh .. ich wünschte, es gäbe eine Python Preferences.app wie Java Preferences.app .. – mk12

1

virtualenv wurde entwickelt, um isolierte Umgebungen einer Python-Umgebung zu erstellen. Der Trick mit mehreren Python-Instanzen zu verwenden ist, um entweder virtualenv in jede der Python-Versionen installieren Sie es mit, zum Beispiel verwenden möchten:

/usr/bin/easy_install-2.6 virtualenv 
/usr/local/bin/easy_install virtualenv 
sudo port install py26-virtualenv 

oder es mit der beabsichtigten Python-Version aufzurufen, zum Beispiel:

/usr/bin/python2.6 virtualenv.py ENV 
/usr/local/bin/python2.6 virtualenv.py ENV 
/opt/local/bin/python2.5 virtualenv.py ENV 

so, als solche, es löst nicht direkt das Problem (besonders akut auf OS X), von denen Python, mit denen Sie arbeiten möchten. Es gibt verschiedene Möglichkeiten, dieses Problem zu lösen: Verwenden Sie absolute Pfade zum beabsichtigten Python (wie in den obigen Beispielen), definieren Sie Shell-Aliase, und verwalten Sie sorgfältig die Suchreihenfolge $PATH.

Im Moment AFAIK ist virtualenv nicht unter anderem weil mit Python 3 unterstützt, setuptools (die Magie hinter easy_install) auf Python 3 noch nicht unterstützt, obwohl es auf eine Lösung dafür.

Übrigens benutzen viele Leute Doug Hellmans virtualenvwrapper, um die Verwendung von virtualenv zu vereinfachen.

+0

Ich habe bereits Python 3.2.3, aber ich muss Python 3.3.2 für einige Sachen in einem installieren natürlich, und meine alten codes sind mit pygame verwandt, ich möchte virtualenv nach der installation und auch pip verwenden, ich weiß nicht, wie pygame in jede umgebung einzubinden ist, entweder python 3.3.2 oder python 3.2.3, die ich benutze Windows XP, jede Meinung oder Anweisung oder Referenz ist willkommen. – mazlor

1

Für mich funktioniert virtualenv3 sehr gut. Ich habe auch pypi.python.org/pypi/distribute installiert. Das funktioniert auch mit den erwähnten www.doughellmann.com/docs/virtualenvwrapper/. Ich habe das nur unter Linux getestet.

+1

Jetzt gibt es auch virtualenv5 http://pypi.python.org/pypi/virtualenv5/ – Alien8

+2

virtualenv3 ist jetzt veraltet! https://pypi.python.org/pypi/virtualenv3 –

14

Es ist eine alte Frage, aber ich habe es selbst oben auf Google Suche nach der Antwort gefunden, und ich glaube nicht, dass die Antworten zur Verfügung gestellt werden, was die Leute suchen.

Wie ich es verstehe, möchten Sie verschiedene virtuelle Umgebungen mit verschiedenen Python-Versionen erstellen?

Dies ist sehr einfach, und Sie brauchen nur virtualenv selbst.

für, sagen wir, ein Python 3:

$ virtualenv -p python3 p34env 

(...) 
New python executable in p34env/bin/python3.4 
Also creating executable in p34env/bin/python 
Installing setuptools, pip...done. 

$ source p34env/bin/activate 

(p34env)$ python -V 
Python 3.4.2 

(p34env)$ deactivate 
$ 

Sie verwenden den Befehl source die Venv zu aktivieren, und deactivate zu - Sie ahnen es - es deaktivieren.Beachten Sie die Eingabeaufforderung, um das env anzuzeigen.

Für die Standardversion Ihres Systems von Python überspringen Sie einfach das Argument -p python3, und Sie können das Argument verwenden, um auf jede Version zu verweisen, die einen Pfad erhalten soll.

Das letzte Argument ist der Name (p34env) und Sie können so viele machen wie Sie möchten, geben Sie ihnen nur verschiedene Namen.