从python脚本中检查python版本,如果/则基于它

时间:2014-04-05 19:29:31

标签: python unicode

基本上我想知道是否有办法知道脚本在脚本中使用的python版本是什么?这是我当前想要使用它的示例:

如果使用python 2,我想让python脚本使用unicode,否则不使用unicode。我目前安装了python 2.7.5和python 3.4.0,并在python 3.4.0下运行我当前的项目。以下是scirpt:

_base = os.path.supports_unicode_filenames and unicode or str

正在返回错误:

    _base = os.path.supports_unicode_filenames and unicode or str
NameError: name 'unicode' is not defined

所以我把它改成了这个以便让它起作用:

_base = os.path.supports_unicode_filenames and str

有没有办法将其更改为此效果:

if python.version == 2:

    _base = os.path.supports_unicode_filenames and unicode or str

else:

    _base = os.path.supports_unicode_filenames and str

4 个答案:

答案 0 :(得分:3)

你非常接近:

import sys
sys.version_info

会回来:

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

你可以这样做:

import sys
ver = sys.version_info[0]
if ver == 2:
    pass

答案 1 :(得分:2)

使用sys.version_info检查您的Python版本。例如:

import sys

if sys.version_info[0] == 2:
    ... stuff
else:
    ... stuff

答案 2 :(得分:2)

您应该查看six库以更好地支持Python 2和3之间的差异。

答案 3 :(得分:2)

您可以为Python 3定义unicode

try:
    unicode = unicode
except NameError: # Python 3 (or no unicode support)
    unicode = str # str type is a Unicode string in Python 3

要查看版本,您可以使用sys.versionsys.hexversionsys.version_info

import sys

if sys.version_info[0] < 3:
   print('before Python 3 (Python 2)')
else: # Python 3
   print('Python 3 or newer')