Pertanyaan Bagaimana cara memeriksa versi Python apa yang menjalankan skrip saya?


Bagaimana saya dapat memeriksa versi apa dari penerjemah Python yang menafsirkan skrip saya?


843
2017-07-07 16:17


asal


Jawaban:


Informasi ini tersedia di sys.version string dalam sys modul:

>>> import sys

Dapat dibaca manusia:

>>> 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)]

Untuk pemrosesan lebih lanjut:

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

Untuk memastikan skrip berjalan dengan persyaratan versi minimal dari interpreter Python tambahkan ini ke kode Anda:

assert sys.version_info >= (2,5)

Ini membandingkan informasi versi mayor dan minor. Tambahkan mikro (=0, 1, dll) dan bahkan releaselevel (='alpha','final', dll) ke tupel sesuka Anda. Namun perlu dicatat, bahwa hampir selalu lebih baik untuk "bebek" memeriksa apakah ada fitur tertentu, dan jika tidak, solusi (atau jaminan). Terkadang fitur hilang dalam rilis baru, digantikan oleh yang lain.


1042
2017-07-07 16:20



Dari baris perintah (perhatikan modal 'V'):

python -V

Ini didokumentasikan dalam 'man python'.


266
2017-07-22 19:50



saya suka sys.hexversion untuk hal-hal seperti ini.

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

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

89
2018-06-10 20:08



Taruhan terbaik Anda mungkin seperti ini:

>>> 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
>>> 

Selain itu, Anda selalu dapat membungkus impor Anda dalam percobaan sederhana, yang harus menangkap kesalahan sintaks. Dan, untuk poin @ Heikki, kode ini akan kompatibel dengan banyak versi python:

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

60
2018-06-10 16:06



Menggunakan platform's python_version dari stdlib:

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

47
2017-08-25 01:11



Letakkan sesuatu seperti:

#!/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)

di bagian atas skrip Anda.

Perhatikan bahwa tergantung pada apa lagi yang ada di skrip Anda, python versi lama daripada target mungkin tidak dapat memuat skrip, jadi tidak akan cukup jauh untuk melaporkan kesalahan ini. Sebagai solusinya, Anda dapat menjalankan di atas dalam skrip yang mengimpor skrip dengan kode yang lebih modern.


46
2018-06-10 16:08



Berikut adalah versi commandline singkat yang langsung keluar (berguna untuk skrip dan eksekusi otomatis):

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

Atau hanya mayor, minor dan mikro:

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)

20
2017-09-02 20:02



Cara paling sederhana

Ketik saja python di terminal Anda dan Anda dapat melihat versinya  sebagai seperti berikut

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.
>>> 

6
2018-02-09 14:11



import sys
sys.version.split(' ')[0]

sys.version memberi Anda apa yang Anda inginkan, cukup pilih nomor pertama :)


5
2017-07-07 16:20