Come controllare la versione Python negli script
-
Metodo
sys.version
per controllare la versione di Python -
Metodo
sys.version_info
per controllare la versione di Python -
platform.python_version()
metodo per controllare la versione Python -
Metodo del modulo
six
per verificare la versione di Python
In diverse circostanze, abbiamo bisogno di conoscere la versione Python, o più precisamente, la versione dell’interprete Python che sta eseguendo il file di script Python.
Metodo sys.version
per controllare la versione di Python
Queste informazioni sulla versione possono essere recuperate da sys.version
nel modulo sys
.
In Python 2.x
>>> import sys
>>> sys.version
'2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]'
o in Python 3.x
>>> import sys
>>> sys.version
'3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]'
Metodo sys.version_info
per controllare la versione di Python
sys.version
restituisce una stringa contenente le informazioni della versione leggibile dall’interprete Python corrente. Ma le informazioni come major release number
e micro release number
hanno bisogno di un’ulteriore elaborazione per essere utilizzate nei codici.
sys.version_info
risolve facilmente questo problema restituendo le informazioni della versione come tupla. I dati della versione che restituisce sono,
Dati | Descrizione |
---|---|
major |
Numero di rilascio maggiore |
micro |
Numero di rilascio della patch |
minor |
Numero di rilascio minore |
releaselevel |
alpha , beta , candidate o release |
serial |
Numero di rilascio seriale |
>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=10, releaselevel='final', serial=0)
Si può confrontare la versione corrente con la versione di riferimento semplicemente usando gli operatori >
, >=
, ==
, <=
o <<
.
>>> import sys
>>> sys.version_info >= (2, 7)
True
>>> sys.version_info >= (2, 7, 11)
False
Potremmo aggiungere una assert
negli script per assicurarci che lo script funzioni con il requisito di una versione Python minima.
import sys
assert sys.version_info >= (3, 7)
Si otterrà un AssertionError
se l’interprete non soddisfa i requisiti di versione.
Traceback (most recent call last):
File "C:\test\test.py", line 4, in <module>
assert sys.version_info >= (3, 7)
AssertionError
platform.python_version()
metodo per controllare la versione Python
python_version()
nel modulo platform
restituisce la versione Python come stringa major.minor.patchlevel
.
>>> from platform import python_version
>>> python_version()
'3.7.0'
O simile a sys.version_info
, platform
ha anche un metodo per restituire la versione Python come tupla (major, minor, patchlevel)
di stringhe - python_version_tuple()
.
>>> import platform
>>> platform.python_version_tuple()
('3', '7', '0')
Metodo del modulo six
per verificare la versione di Python
Se si deve solo controllare se la versione Python è Python 2.x o Python 3.x, si può usare six
module per fare il lavoro.
from __future__ import print_function
import six
if six.PY2:
print("Python 2.x")
if six.PY3:
print ("Python 3.x")
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook