嵌套导入错误



运行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本身的现代版本。

相关内容

  • 没有找到相关文章

最新更新