我有一个Python文件,它可能必须支持Python版本< 3。X和>= 3.x。是否有一种方法可以内省Python运行时以了解它正在运行的版本(例如,2.6或3.2.x)?
当前回答
/ sys。hexversion和API和ABI Versioning:
import sys
if sys.hexversion >= 0x3000000:
print('Python 3.x hexversion %s is in use.' % hex(sys.hexversion))
其他回答
试试这段代码,应该可以工作:
import platform
print(platform.python_version())
为了使脚本与Python2和3兼容,我使用:
from sys import version_info
if version_info[0] < 3:
from __future__ import print_function
下面是我使用sys的一些代码。检查Python的安装:
def check_installation(rv):
current_version = sys.version_info
if current_version[0] == rv[0] and current_version[1] >= rv[1]:
pass
else:
sys.stderr.write( "[%s] - Error: Your Python interpreter must be %d.%d or greater (within major version %d)\n" % (sys.argv[0], rv[0], rv[1], rv[0]) )
sys.exit(-1)
return 0
...
# Calling the 'check_installation' function checks if Python is >= 2.7 and < 3
required_version = (2,7)
check_installation(required_version)
因为你感兴趣的是你是否有Python 2或3,这有点笨拙,但绝对是最简单和100%的工作方式如下: python Python_version_major = 3/2*2 这样做的唯一缺点是,当有Python 4时,它可能仍然会给你3。
如果你想以人类可读的形式看到所有血腥的细节,你可以使用:
import platform;
print(platform.sys.version);
我的系统输出:
3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0]
从平台获取version_info对象是非常详细但机器可解析的。而是Sys,然后使用它的属性来采取预定的行动。例如:
import platform;
print(platform.sys.version_info)
系统输出:
sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0)
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录