如何检查哪个版本的Python解释器正在运行我的脚本?
当前回答
从命令行(注意大写的“V”):
python -V
这在“man python”中有记录。
从IPython控制台
!python -V
其他回答
在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'
更简单的方法:
在Spyder中,启动一个新的“IPython控制台”,然后运行任何现有的脚本。
现在版本可以在控制台窗口打印的第一个输出中看到:
“Python 3.7.3(默认,Apr 24 2019, 15:29:51)…”
该信息可在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'等)。然而,请注意,最好是“回避”检查是否有特定的功能,如果没有,就采取变通措施(或退出)。有时,新版本的特性会消失,被其他特性所取代。
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。
已经有几个答案建议如何查询当前的python版本。为了以编程方式检查版本需求,我将使用以下两种方法之一:
# Method 1: (see krawyoti's answer)
import sys
assert(sys.version_info >= (2,6))
# Method 2:
import platform
from distutils.version import StrictVersion
assert(StrictVersion(platform.python_version()) >= "2.6")
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用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中获得所有直接子目录