首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hashlib / md5。与python 2.4兼容

hashlib / md5。与python 2.4兼容
EN

Stack Overflow用户
提问于 2009-09-14 20:51:42
回答 2查看 6K关注 0票数 8

Python2.6报告说md5模块已经过时,应该使用hashlib。如果我将import md5更改为import hashlib,我将解析Python2.5和Python2.6,但不解析Python2.4,它没有hashlib模块(导致ImportError,我可以捕获它)。

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

在更一般的情况下,您如何解决此问题,例如:您有两个具有相同目标但不同接口的不同库,您希望使用其中一个库,但如果找不到第一个库,则回退并使用另一个库。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-14 20:54:25

一般来说,下面的构造就很好了:

代码语言:javascript
复制
try:
    import module
except ImportError: 
    # Do something else.

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

代码语言:javascript
复制
try: 
   from hashlib import md5
except ImportError:
   from md5 import md5
票数 18
EN

Stack Overflow用户

发布于 2009-09-14 20:57:10

在模块具有相同接口的情况下,就像这里一样,您描述的解决方案很好。您还可以将导入隔离到它自己的模块中,如下所示:

代码语言:javascript
复制
hash.py
----
try:
   import hashlib.md5 as md5mod
except ImportError:
   import md5 as md5mod

-----
prog.py
-----
from hash import md5mod
....

在它们具有不同接口的情况下,您需要编写一个适配器来按照您指定的方式对齐这些接口。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1423861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档