基于已安装的python版本导入模块?

时间:2009-12-09 16:55:26

标签: python json

我的模块目前导入json模块,该模块仅在2.6中可用。我想对python版本进行检查以导入simplejson,它可以为2.5构建(并且无论如何都是2.6中采用的模块)。类似的东西:

if __version__ 2.5:
    import simplejson as json
else:
    import json

最好的方法是什么?

3 个答案:

答案 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