Frage

Im Moment habe ich 2.6.2 Python auf meinem Mac installiert. Ich schreibe ein Skript, das auf Python 2.5.2 ausgeführt werden muss. Deshalb möchte ich ein Python-Skript schreiben, und Test ist spezifisch gegen 2.5.2 und 2.6.2 nicht.

Ich war virtualenv suchen, aber es scheint nicht mein Problem zu lösen. Ich lief python virtualenv.py TEST, die einen TEST dir gemacht, aber es hatte Python 2.6 drin. Gibt es eine Möglichkeit virtualenv verwendet eine andere Version von Python als zu machen, was standardmäßig auf meinem Rechner installiert ist? Ist ein weiterer Weg, um die #! als die erste Zeile des Python-Skript zu benutzen? Wie würde ich das tun?

War es hilfreich?

Lösung

Sie können nur eine Python 2.5.2 installieren.

Ich habe 3 verschiedene Versionen Python auf meinem Lucid installiert und verwenden sie unterschiedliche Links unter /bin/ so ist es einfach, die bestimmte Version nennen

Python -> python3 -> python3.1
python2 -> python2.7
python2.5

Andere Tipps

Schauen Sie sich tox ; es ist entworfen zu tun genau dies.

Sie können Setup eine Sandbox-Umgebung mit verschiedenen Python-Versionen mit virtualenv. Wie Kable getan hat, installieren Sie den 2.5. Version Sie wollen Test gegen. Dann erstellen Sie Ihre virtuelle Umgebung:

virtualenv --p=python2.5 myapp

Um eine saubere Umwelt erhalten Sie die --no-Website-Pakete verwenden kann mit dem Befehl schalten oben. Ganz praktisch, wenn ein neues, frisches Setup zu simulieren versucht. Aktivieren Sie nun Ihre virtualenv:

source myapp/bin/activate

Wenn Sie die Python-Version überprüfen sollten Sie jetzt Version 2.5.x erhalten:

python -V

Jetzt können Sie Module installieren, wie Sie möchten in Ihrer virtuellen Umgebung in der üblichen Weise:

easy_install ... 
pip ...

Ihre virtuelle Umgebung verlassen:

deactivate

Hope dies hilfreich sein kann.

try #!/path/to/your/python/version

Aber stellen Sie sicher, dass Sie das Skript aus dem Terminal ausführen, und es ausführbar machen, bevor die Hand: chmod 755 myscript.py

Mit 'virtualenv' können Sie verschiedene isoliert Python-Umgebungen auf einer einzigen Maschine. Sie können auch wechseln jede Zeit zwischen den verschiedenen Python-Interpreter Versionen.

Was ist virtualenv?

Eine virtuelle Umgebung ist eine isolierte Arbeitskopie von Python, die Sie an der Arbeit an einem bestimmten Projekt ermöglicht ohne Sorge von anderen Projekten zu beeinflussen. Es ermöglicht mehr Side-by-Side-Installationen von Python, einen für jedes Projekt. Es ist nicht wirklich getrennte Kopien von Python zu installieren, aber es bietet eine clevere Art und Weise isoliert unterschiedliche Projektumgebungen zu halten.

Wie installieren?

pip install virtualenv

Um Python virtuelle Umgebung erstellen 2.7:

root:~# which python2.7

/usr/bin/python2.7

root:~# which python3.4

/usr/local/bin/python3.4

Sie können auch ein Python-Interpreter Ihrer Wahl verwenden:

root:~# virtualenv -p /usr/bin/python2.7 Vpy27

Running virtualenv with interpreter /usr/bin/python2.7

New python executable in /root/Vpy27/bin/python2.7

Also creating executable in /root/Vpy27/bin/python

Installing setuptools, pip, wheel...done.

beginnen, um die virtuelle Umgebung verwenden, muss es aktiviert werden:

root:~# source Vpy27/bin/activate

Der Name der aktuellen virtuellen Umgebung erscheint nun auf der linken Seite der Eingabeaufforderung:

(Vpy27) root:~# python -V
Python 2.7.3

Installieren von Paketen wie üblich, zum Beispiel:

(Vpy27) root:~# pip install junos-eznc    >> All pip installs done here, will be available only in this environment.

Wenn Sie für den Moment in der virtuellen Umgebung durchgeführt arbeiten, können Sie es deaktivieren:

(Vpy27) root:~# deactivate   

Um Python virtuelle Umgebung erstellen 3.4:

root:~# which python3.4

/usr/local/bin/python3.4

root:~# virtualenv -p /usr/local/bin/python3.4 Vpy34

root:~# source Vpy34/bin/activate

(Vpy34) root:~# python -V
Python 3.4.4

Es gibt auch eine Möglichkeit, mit bereits vorhandenen Website-Paketen virtuelle Umgebung zu schaffen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top