开发者

Importing a module based on installed python version?

My module currently imports the json module, which is only available in 2.6. I'd like to make a check against the python version to import simplejson, which can be 开发者_Python百科built for 2.5 (and is the module adopted in 2.6 anyway). Something like:

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

What's the best way to approach this?


try:
    import simplejson as json
except ImportError:
    import json

of course, it doesn't work around cases when in python-2.5 you don't have simplejson installed, the same as your example.


Though the ImportError approach (SilentGhost's answer) is definitely best for this example, anyone wanting to do that __version__ thing would use something like this:

import sys
if sys.version_info < (2, 6):
    import simplejson as json
else:
    import json

To be absolutely clear though, this is not the "best way" to do what you wanted... it's merely the correct way to do what you were trying to show with __version__.


You can import one or more modules without Handling ImportError error:

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜