ネストされたインポートエラー
-
28-10-2019 - |
質問
ランニング 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を使用するためにやめ、使用しようとしました スタンドアロンハッシュライブライブラリ. 。だから私は修正しました 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.
私 同様の質問を投稿しました 昨日は正確な解決策を見つけることができないので、私はこれを再び投稿しています。私は必死に解決策が必要です:(
解決
上記のことに基づいたいくつかの質問。
1)なぜ古代バージョンのPythonを使用しているのですか? Python 2.7をインストールして、幸せになりましょう!
2)残念ながら、何らかの未知の理由で2.4で立ち往生していると仮定してください... Pythonは、インストールしたHashlibパッケージに付属しているバイナリ拡張モジュール(.pyd)ファイルを見つけることができないようです。独自のHashlibをコンパイルするか、バイナリバージョンをインストールしましたか?その場合、_hashlib.pydファイルがpythonpathまたはsys.pathのどこかに配置されていることを確認してください。
ハッシュリブ用のバイナリを事前にコンパイルしたバイナリを備えたWindowsインストーラーを持っていません http://code.krypto.org/python/hashlib 何年もの間、それを構築してテストする能力が欠けているので...そしてPython 2.4は非常に古いので、システムにバイナリをインストールできる人なら誰でも、Python自体の最新バージョンをインストールできると思います。