How Do I Check What Version Of Python Is Running My Script?
Solution 1:
This information is available in the sys.version
string in the sys
module:
>>>import sys
Human readable:
>>>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)]
For further processing, use sys.version_info
or sys.hexversion
:
>>> sys.version_info
(2, 5, 2, 'final', 0)
# or>>> sys.hexversion
34014192
To ensure a script runs with a minimal version requirement of the Python interpreter add this to your code:
assert sys.version_info >= (2, 5)
This compares major and minor version information. Add micro (=0
, 1
, etc) and even releaselevel (='alpha'
,'final'
, etc) to the tuple as you like. Note however, that it is almost always better to "duck" check if a certain feature is there, and if not, workaround (or bail out). Sometimes features go away in newer releases, being replaced by others.
Solution 2:
From the command line (note the capital 'V'):
python -V
This is documented in 'man python'.
From IPython console
!python -V
Solution 3:
I like sys.hexversion
for stuff like this.
>>>import sys>>>sys.hexversion
33883376
>>>'%x' % sys.hexversion
'20504f0'
>>>sys.hexversion < 0x02060000
True
Solution 4:
Use platform
's python_version
from the stdlib:
from platform import python_version
print(python_version())
# 3.9.2
Solution 5:
Your best bet is probably something like so:
>>>import sys>>>sys.version_info
(2, 6, 4, 'final', 0)
>>>ifnot sys.version_info[:2] == (2, 6):...print"Error, I need python 2.6"...else:...from my_module import twoPointSixCode>>>
Additionally, you can always wrap your imports in a simple try, which should catch syntax errors. And, to @Heikki's point, this code will be compatible with much older versions of python:
>>>try:...from my_module import twoPointSixCode...except Exception: ...print"can't import, probably because your python is too old!">>>
Post a Comment for "How Do I Check What Version Of Python Is Running My Script?"