문제

Python 2.6에 따르면 MD5 모듈은 더 이상 사용되지 않으며 해시 브를 사용해야합니다. 내가 변하면 import md5 에게 import hashlib Python 2.5 및 Python 2.6에 대해서는 해결하지만 Hashlib 모듈이없는 Python 2.4에는 해당되지 않습니다 (수입업자로 이어질 수 있습니다).

이제 해결하기 위해 시도/캐치를 수행하고 getmd5 () 함수를 정의하여 시도 블록의 결과에 따라 적절한 것이 정의되도록합니다. 이 솔루션은 괜찮습니까?

예를 들어,보다 일반적인 경우와 같은 일반적인 경우 에이 문제를 어떻게 해결 하시겠습니까 : 당신은 동일한 목표이지만 다른 인터페이스를 가진 두 개의 다른 라이브러리가 있고 하나를 사용하려고하지만 첫 번째가 아닌 경우 다른 것을 사용하고 싶지 않습니다. 설립하다.

도움이 되었습니까?

해결책

일반적으로 다음 구성은 괜찮습니다.

try:
    import module
except ImportError: 
    # Do something else.

아마도 당신의 특정한 경우 : 아마도 :

try: 
   from hashlib import md5
except ImportError:
   from md5 import md5

다른 팁

모듈이 여기에서와 동일한 인터페이스를 갖는 경우 설명 된 솔루션은 정상입니다. 또한 가져 오기를 다음과 같이 자체 모듈로 분리 할 수도 있습니다.

hash.py
----
try:
   import hashlib.md5 as md5mod
except ImportError:
   import md5 as md5mod

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

인터페이스가 다른 경우 지정된대로 인터페이스를 정렬하려면 어댑터를 작성해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top