2012-02-20 16 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昨日私は再びこれを掲示しています理由は厳密解を見つけることができません。私は必死ソリューション:(あなたは上記の言ったものに基づいて

+0

他の質問にあるように、PyCryptoをコンパイルしてインストールできないのはなぜですか? hashlibはネイティブのopensslライブラリに依存しています。システムにインストールされていないために失敗します。 – SquareRootOfTwentyThree

答えて

0

いくつかの質問をする必要があります。

1)なぜあなたは、Pythonの古代のバージョンを使用していますか? Python 2.7をインストールして幸せに!

2)残念なことに、いくつかの不明な理由で2.4が残っていると仮定します。インストールしたhashlibパッケージに付属しているバイナリ拡張モジュール(.pyd)ファイルをPythonが見つけることができません。独自のhashlibをコンパイルしたのか、バイナリバージョンをインストールしましたか? その場合は、_hashlib.pydファイルがPYTHONPATHまたはsys.pathのどこかに置かれていることを確認してください。

ビルドしてテストする機能が不足しているため、hashplusのプリコンパイルされたバイナリをWindowsインストーラにインストールしていませんでした...そして、Python 2.4はとても古いものです。彼らのシステム上のバイナリはPython自体の現代版をインストールするだけです。