2012-02-20 5 views
0

실행 중 python version 2.4.3. python-amazon-product-api을 사용하고 있습니다. 그러나 api.py에 다음 코드 줄이 문제를 일으키는 : 내 버전으로중첩 가져 오기 오류

if sys.version_info[:2] > (2, 4): # pragma: no cover 
    from urllib2 import quote 
    from hashlib import sha256 # pylint: disable-msg=E0611 
else: 
    from urllib import quote 
    from Crypto.Hash import SHA256 as sha256 

는 2.4.3는 else에 가서 Crypto를 가져 오려고합니다. 그래서 다운로드했지만 SHA256.py cannot import _SHA256에서 가져 오기 오류가 발생했습니다. 라이브러리에는 _SHA256.py가 없습니다. 내 모든 실패한 노력 후 난 pyCrypto 사용을 종료하고 난 standalone hashlib library을 사용해보십시오. 그래서 나는 api.pyelse 부분을 수정 :

else: 
    from hashlib import hashlib 
    sha256 = hashlib.sha256() 

을 다음 hashlib을 가져 오면 내가이 수입 오류가 발생했습니다 다시있다.

File "C:\Python24\lib\site-packages\hashlib.py", line 63, in __get_builtin_constructor 
    import _md5 
ImportError: DLL load failed: The specified module could not be found. 

I posted similar question 어제하지만 난 다시를 게시하고 왜 정확한 해결책을 찾을 수 없습니다. 나는 필사적으로 해결책 :(위에서 말한 것.

1) 왜 파이썬의 고대 버전을 사용하는 기반으로

+0

다른 질문에서 제안한 것처럼 PyCrypto를 컴파일하고 설치할 수없는 이유는 무엇입니까? hashlib는 원시 openssl 라이브러리에 의존합니다. 시스템에 설치되지 않았기 때문에 실패합니다. – SquareRootOfTwentyThree

답변

0

몇 가지 질문을해야합니까? 파이썬 2.7을 설치하고 더 행복해!

2) 불행히도 알 수없는 이유로 2.4가 붙어 있다고 가정하면 ... Python이 설치된 hashlib 패키지와 함께 제공되는 바이너리 확장 모듈 (.pyd) 파일을 찾을 수없는 것으로 보입니다. 자신의 hashlib를 컴파일 했습니까? 아니면 바이너리 버전을 설치 했습니까? 그렇다면 _hashlib.pyd 파일이 PYTHONPATH 또는 sys.path 어딘가에 있는지 확인하십시오.

내가 빌드하고 테스트 할 수있는 능력이 없어서 hashplus에 대한 사전 컴파일 된 바이너리가 Windows 설치 프로그램에 없었습니다. http://code.krypto.org/python/hashlib에 있습니다. 그리고 Python 2.4는 너무 오래되어서 설치 능력이있는 사람이라면 누구나 추측 할 수 있습니다. 그들의 시스템에있는 바이너리는 파이썬 자체의 최신 버전을 설치할 수 있습니다.