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 并尝试使用独立的 hashlib 库。所以我修改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.

我昨天发布了类似的问题,但找不到确切的解决方案,这就是我再次发布此问题的原因。我迫切需要一个解决方案:(

4

1 回答 1

0

根据你上面所说的几个问题。

1)你为什么使用一个古老的 Python 版本?安装 Python 2.7 并更快乐!

2) 假设您不幸因某种未知原因被 2.4 卡住了……看来 Python 无法找到您安装的 hashlib 包附带的任何二进制扩展模块 (.pyd) 文件。您是否编译了自己的 hashlib 或安装了二进制版本?如果是这样,请确保将 _hashlib.pyd 文件放在 PYTHONPATH 或 sys.path 中的某个位置。

多年来,我没有在http://code.krypto.org/python/hashlib上安装带有预编译二进制文件的 Windows 安装程序,因为我缺乏构建和测试它的能力......而且 Python 2.4 太旧了我假设任何能够在他们的系统上安装二进制文件的人都可以安装 Python 本身的现代版本。

于 2012-02-21T16:33:31.880 回答