[英]check python version(s) from within a python script and if/else based on that
基本上我想知道是否有办法知道脚本在脚本中使用的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
你非常接近:
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
使用sys.version_info
检查Python版本。 例如:
import sys
if sys.version_info[0] == 2:
... stuff
else:
... stuff
您应该查看six
库以更好地支持Python 2和3之间的差异。
您可以为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.version
, sys.hexversion
, sys.version_info
:
import sys
if sys.version_info[0] < 3:
print('before Python 3 (Python 2)')
else: # Python 3
print('Python 3 or newer')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.