运行python version 2.4.3
。我使用的是python亚马逊产品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库。所以我修改了api.py
:中的else
部分
else:
from hashlib import hashlib
sha256 = hashlib.sha256()
然后,在导入hashlib时,我再次收到了这个导入错误。
File "C:Python24libsite-packageshashlib.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安装程序,上面有用于hashlib的预编译二进制文件http://code.krypto.org/python/hashlib多年来,由于我缺乏构建和测试它的能力……而Python 2.4太旧了,我认为任何有能力在系统上安装二进制文件的人都可以安装Python本身的现代版本。