如何检查哪个版本的Python解释器正在运行我的脚本?
当前回答
sys。Version_info在3.7时似乎没有返回元组。相反,它返回一个特殊的类,因此使用元组的所有示例都不起作用,至少对我来说是这样。下面是python控制台的输出:
>>> import sys
>>> type(sys.version_info)
<class 'sys.version_info'>
我发现使用sys.version_info的组合。Major和sys.version_info。小调似乎就足够了。例如,……
import sys
if sys.version_info.major > 3:
print('Upgrade to Python 3')
exit(1)
检查是否运行Python 3。你甚至可以用…
import sys
ver = sys.version_info
if ver.major > 2:
if ver.major == 3 and ver.minor <= 4:
print('Upgrade to Python 3.5')
exit(1)
可以检查你是否至少运行Python 3.5。
其他回答
我喜欢系统。对于这样的东西。
>>> import sys
>>> sys.hexversion
33883376
>>> '%x' % sys.hexversion
'20504f0'
>>> sys.hexversion < 0x02060000
True
该信息可在sys。sys模块中的版本字符串:
>>> import sys
人类可读的:
>>> 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)]
如需进一步处理,请使用sys。Version_info或sys.hexversion:
>>> sys.version_info
(2, 5, 2, 'final', 0)
# or
>>> sys.hexversion
34014192
为了确保脚本以最小版本的Python解释器要求运行,在代码中添加以下内容:
assert sys.version_info >= (2, 5)
比较主要版本和次要版本信息。在元组中添加micro(= 0,1等)和releaselevel (='alpha','final'等)。然而,请注意,最好是“回避”检查是否有特定的功能,如果没有,就采取变通措施(或退出)。有时,新版本的特性会消失,被其他特性所取代。
如果你想检测python 3之前的版本,但不想导入任何东西…
...你可以(ab)使用列表理解范围的变化,并在一个表达式中完成:
is_python_3_or_above = (lambda x: [x for x in [False]] and None or x)(True)
尝试使用os。Popen在变量中读取它:
import os
ver = os.popen('python -V').read().strip()
print(ver)
在Windows操作系统下,通过在命令提示符中输入以下命令,验证命令的Python版本
c:\>python -V
Python 2.7.16
c:\>py -2 -V
Python 2.7.16
c:\>py -3 -V
Python 3.7.3
此外,要查看每个Python版本的文件夹配置,请运行以下命令:
For Python 2,'py -2 -m site'
For Python 3,'py -3 -m site'
推荐文章
- 有没有办法在python中做HTTP PUT
- “foo Is None”和“foo == None”之间有什么区别吗?
- 类没有对象成员
- Django模型“没有显式声明app_label”
- 熊猫能自动从CSV文件中读取日期吗?
- 在python中zip的逆函数是什么?
- 有效的方法应用多个过滤器的熊猫数据框架或系列
- 如何检索插入id后插入行在SQLite使用Python?
- 我如何在Django中添加一个CharField占位符?
- 如何在Python中获取当前执行文件的路径?
- 我如何得到“id”后插入到MySQL数据库与Python?
- super()失败,错误:TypeError "参数1必须是类型,而不是classobj"当父不继承对象
- Python内存泄漏
- 实现嵌套字典的最佳方法是什么?
- 如何在tensorflow中获得当前可用的gpu ?