我的模块目前导入json
模块,该模块仅在2.6中可用。我想对python版本进行检查以导入simplejson
,它可以为2.5构建(并且无论如何都是2.6中采用的模块)。类似的东西:
if __version__ 2.5:
import simplejson as json
else:
import json
最好的方法是什么?
答案 0 :(得分:15)
try:
import simplejson as json
except ImportError:
import json
当然,它不适用于在python-2.5中没有安装simplejson
的情况,与您的示例相同。
答案 1 :(得分:12)
虽然ImportError方法(SilentGhost的答案)对于这个例子来说绝对是最好的,但任何想要做__version__
事情的人都会使用这样的东西:
import sys
if sys.version_info < (2, 6):
import simplejson as json
else:
import json
尽管如此,这是不做你想做的事情的“最佳方式”......这只是你用{{1}做你想要展示的东西的正确方法}。
答案 2 :(得分:1)
您可以导入一个或多个模块而不会处理ImportError错误:
import sys
major_version = sys.version_info.major
if major_version == 2:
import SocketServer
import SimpleHTTPServer
import urllib2
elif major_version == 3:
import http.server as SimpleHTTPServer
import socketserver as SocketServer
import urllib.request as urllib2