Wie überprüfe ich, welche Version von Python mein Skript ausführt?

Wie kann ich überprüfen, welche Version des Python-Interpreters mein Skript interpretiert?

12 Solutions collect form web for “Wie überprüfe ich, welche Version von Python mein Skript ausführt?”

Diese Informationen sind im sys.version- String im Sys- Modul verfügbar:

>>> import sys 

Für Menschen lesbar:

 >>> print (sys.version) #parentheses necessary in python 3. 2.5.2 (r252:60911, Jul 31 2008, 17:28:52) [GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] 

Zur weiteren Verarbeitung:

 >>> sys.version_info (2, 5, 2, 'final', 0) # or >>> sys.hexversion 34014192 

Um sicherzustellen, dass ein Skript mit einer minimalen Versionsanforderung des Python-Interpreters läuft, fügen Sie dies Ihrem Code hinzu:

 assert sys.version_info >= (2,5) 

Dies vergleicht die Haupt- und Nebenversionsinformationen. Füge micro (= 0 , 1 , etc) und sogar Releaselevel (= 'alpha' , 'final' , etc.) zum Tupel, wie du willst. Beachten Sie jedoch, dass es fast immer besser ist, "duck" zu überprüfen, ob ein bestimmtes Feature da ist, und wenn nicht, Workaround (oder Rettung). Manchmal sind die Features in neueren Releases weggegangen und werden durch andere ersetzt.

Von der Kommandozeile aus (beachten Sie das Kapital 'V'):

 python -V 

Dies ist in 'man python' dokumentiert.

Ich mag sys.hexversion für Sachen wie diese.

http://docs.python.org/library/sys.html#sys.hexversion

 >>> import sys >>> sys.hexversion 33883376 >>> '%x' % sys.hexversion '20504f0' >>> sys.hexversion < 0x02060000 True 

Ihre beste Wette ist wahrscheinlich so etwas wie:

 >>> import sys >>> sys.version_info (2, 6, 4, 'final', 0) >>> if not sys.version_info[:2] == (2, 6): ... print "Error, I need python 2.6" ... else: ... from my_module import twoPointSixCode >>> 

Darüber hinaus können Sie immer Ihre Importe in einem einfachen Versuch, die Syntax Fehler fangen sollte. Und, um @ Heikki Punkt, wird dieser Code kompatibel mit viel älteren Versionen von Python:

 >>> try: ... from my_module import twoPointSixCode ... except Exception: ... print "can't import, probably because your python is too old!" >>> 

Setzen Sie etwas wie:

 #!/usr/bin/env/python import sys if sys.version_info<(2,6,0): sys.stderr.write("You need python 2.6 or later to run this script\n") exit(1) 

An der Spitze deines Skripts.

Beachten Sie, dass je nachdem, was sonst in Ihrem Skript ist, ältere Versionen von Python als das Ziel möglicherweise nicht in der Lage, sogar das Skript laden, so wird nicht weit genug, um diesen Fehler zu melden. Als Workaround können Sie das oben in einem Skript ausführen, das das Skript mit dem moderneren Code importiert.

Ich fand diese Methode irgendwo.

 >>> from platform import python_version >>> print python_version() 2.7.8 

Hier ist eine kurze Kommandozeilenversion, die sofort abläuft (handlich für Skripte und automatisierte Ausführung):

 python -c "print __import__('sys').version" 

Oder nur der Major, Minor und Micro:

 python -c "print __import__('sys').version_info[:1]" # (2,) python -c "print __import__('sys').version_info[:2]" # (2, 7) python -c "print __import__('sys').version_info[:3]" # (2, 7, 6) 

Wie Seth sagte, könnte das Haupt-Skript sys.version_info überprüfen (aber beachten Sie, dass das nicht bis 2.0 erscheint, also wenn Sie ältere Versionen unterstützen möchten, müssten Sie eine andere Versionseigenschaft des Sys-Moduls überprüfen).

Aber du musst noch darauf achten, keine Python-Sprachfunktionen in der Datei zu verwenden, die in älteren Python-Versionen nicht verfügbar sind. Zum Beispiel ist dies in Python 2.5 und später erlaubt:

 try: pass except: pass finally: pass 

Aber wird nicht in älteren Python-Versionen arbeiten, weil man nur außer ODER endlich den Versuch haben könnte. Also für die Kompatibilität mit älteren Python-Versionen müssen Sie schreiben:

 try: try: pass except: pass finally: pass 
 import sys sys.version.split(' ')[0] 

Sys.version gibt dir was du willst, wähle einfach die erste nummer 🙂

Um ein MSDOS-Skript zu sehen, um die Version vor dem Ausführen des Python-Interpreters zu überprüfen (um Python-Versions-Syntax-Ausnahmen zu vermeiden) Siehe Lösung:

Wie kann ich die Python-Version in einem Programm überprüfen, das neue Sprachfunktionen verwendet?

und

MS-Skript; Python-Version Überprüfung Prelaunch von Python-Modul http://pastebin.com/aAuJ91FQ (Skript wahrscheinlich einfach zu anderen OS-Skripte zu konvertieren.)

Der einfachste Weg

Geben Sie einfach python in Ihrem Terminal und Sie können die Version wie folgt sehen

 desktop:~$ python Python 2.7.6 (default, Jun 22 2015, 18:00:18) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 

Wenn Sie an Linux arbeiten, geben Sie einfach Befehl "python" Ausgabe wird so sein

** Python 2.4.3 (# 1, Jun 11 2009, 14:09:37)

[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] auf Linux2

Geben Sie "help", "copyright", "credits" oder "license" für weitere Informationen ein. **

  • Wie: Macports wählen python aus
  • Upgrade python in einem virtualenv
  • Wie sage ich einem Python-Skript, um eine bestimmte Version zu verwenden
  • Wie kann ich die Python-Version in einem Programm überprüfen, das neue Sprachfunktionen verwendet?
  • Buildout - mit verschiedenen python version
  • Python's argparse zeigt die Programm-Version mit Prog und Version String Formatierung
  • Python- und OpenSSL-Versionsreferenz auf OS X
  • So verwenden Sie mehrere Versionen von Python ohne Deinstallation
  • Wie man die Standard-Python-Version auf Windows XP ändern kann
  • Installiere bestimmte Version mit easy_install
  • Wie importiere ich. .pyc-Datei aus einer anderen Version von Python?
  • Python ist die beste Programmiersprache der Welt.