해시브 / MD5. Python 2.4와의 호환성
-
07-07-2019 - |
문제
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
....
인터페이스가 다른 경우 지정된대로 인터페이스를 정렬하려면 어댑터를 작성해야합니다.
제휴하지 않습니다 StackOverflow