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

Wel*_*lls 11 python json

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

if __version__ 2.5:
    import simplejson as json
else:
    import json
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法来解决这个问题?

Sil*_*ost 18

try:
    import simplejson as json
except ImportError:
    import json
Run Code Online (Sandbox Code Playgroud)

当然,它不适用于在python-2.5中你没有simplejson安装的情况,就像你的例子一样.


Pet*_*sen 13

虽然ImportError方法(SilentGhost的答案)对于这个例子来说绝对是最好的,但任何想要做这__version__件事的人都会使用这样的东西:

import sys
if sys.version_info < (2, 6):
    import simplejson as json
else:
    import json
Run Code Online (Sandbox Code Playgroud)

但要绝对清楚,这不是做你想做的事情的"最佳方式"......这只是做你想要表现的正确方法__version__.