Python版本检查(主要属性)

时间:2017-05-29 19:46:45

标签: python sys versioninfo

sys.version_info.major做什么? 我知道sys.version_info返回我们正在使用的解释器版本。专业在这方面应该扮演什么角色? 它在这段代码中是如何工作的:

  import sys 
  if sys.version_info.major<3:
           #code  here   
  else:
            #code here

4 个答案:

答案 0 :(得分:1)

这是一个陈腐的例子:

from __future__ import print_function
import sys 
  if sys.version_info.major<3:
           input = raw_input  # Python2 ~== eval(input())  
  else:
            #code here

这使得Python 2.x的行为更像Python 3 ... future 导入不能在 if 套件中,因为它必须出现在其他进口之前。但是Python 2.x和Python 3之间的 input()内置函数的语义变化可以在条件中处理。

在大多数情况下,在同一文件中支持Python2和Python3的努力中,要做到这一点是个坏主意。

Python2和Python3之间更具挑战性的变化与作为字节的字符串和作为Unicode的较新字符串相关;因此需要明确指定编码并为许多网络协议和API使用 bytes 对象。

答案 1 :(得分:0)

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.version_info
sys.version_info(major=3, minor=5, micro=1, releaselevel='final', serial=0)

major可以告诉你它是python2还是python3。我猜它导入不同的库取决于特定的python版本。

我使用的是python 3.5.1,你可以看到关于它的version_info

答案 2 :(得分:0)

例如,我的计算机上安装了Python 3.5.3。 sys_version存储以下信息:

sys.version_info(major=3, minor=5, micro=3, releaselevel='final', serial=0)

版本分为majorminormicro的原因是程序员为多个版本的Python编写代码可能需要以某种方式区分它们。大多数差异都在Python的主要版本2和3之间,这解释了代码中major用法的上下文。

答案 3 :(得分:-2)

告诉您 Python 版本:>>> sys.version_info

<块引用> <块引用> <块引用>

sys.version_info

sys.version_info(major=3, minor=7, micro=8, releaselevel='final', serial=0)