hashlib/md5.与python 2.4的兼容性

Ste*_*ini 8 python import md5 backwards-compatibility hashlib

python 2.6报告md5模块已过时,应使用hashlib.如果我import md5改为import hashlib我将解决python 2.5和python 2.6,但不适用于python 2.4,它没有hashlib模块(导致ImportError,我可以捕获).

现在,要修复它,我可以执行try/catch,并定义一个getMd5()函数,以便根据try块的结果定义一个合适的函数.这个解决方案好吗?

你会如何在一个更一般的情况下解决这个问题,例如:你有两个不同的库具有相同的目标但不同的界面,你想要使用一个,但如果第一个没有,则退回并使用另一个找到.

Tri*_*ych 18

一般来说,下面的结构很好:

try:
    import module
except ImportError: 
    # Do something else.
Run Code Online (Sandbox Code Playgroud)

在您的特定情况下,也许:

try: 
   from hashlib import md5
except ImportError:
   from md5 import md5
Run Code Online (Sandbox Code Playgroud)