2012-02-20 66 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。所以我修改else部分api.py

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. 

posted similar question昨天,但沒能找到確切的解決方案,就是爲什麼我再次發佈此。我迫切需要一個解決方案:(

基於什麼你

1)你爲什麼要使用Python的一個古老的版本上面說的。

+0

爲什麼不能按照其他問題的建議編譯和安裝PyCrypto? hashlib依賴本地openssl庫;它會因爲它們未安裝在您的系統中而失敗。 – SquareRootOfTwentyThree 2012-02-20 13:31:21

回答

0

幾個問題?安裝Python 2.7並更快樂!

2)假設你不幸遇到2.4,原因不明理由......看來Python無法找到你安裝的hashlib軟件包附帶的任何二進制擴展模塊(.pyd)文件。你編譯自己的hashlib還是安裝二進制版本? 如果是這樣,請確保將_hashlib.pyd文件放在PYTHONPATH或sys.path中的某處。

由於我缺乏構建和測試它的能力,我還沒有安裝windows installer,它具有預編譯的二進制文件,因爲hashlib在http://code.krypto.org/python/hashlib以上...而且Python 2.4太老了,我認爲任何人都可以安裝他們的系統上的二進制文件可以安裝一個現代版本的Python本身。