【问题标题】:Errors when including DES.pyd in python 2.6 solution在 python 2.6 解决方案中包含 DES.pyd 时出错
【发布时间】:2012-09-18 00:23:52
【问题描述】:

我已经在我的 windows 7 x64 系统上安装了 Python 2.7,并编译并内置了 PyCrypto 2.5。在我的安装路径 D:\Python27\Lib\site-packages\Crypto\Cipher 中,我看到了 DES.pyd。我已经用dependency walker打开了它,并确保它有initDES作为它唯一的出口。

我想做的是复制/粘贴DES.pyd,因为它已经构建并在我的代码中使用。所以现在我的项目文件夹D:\project 包含test.pyDES.pyd

test.py 包含代码:

import sys
sys.path.append("D:\\project\\")
import DES
print 'hi'

在运行test.py 时,我收到以下错误:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    import DES
SystemError: dynamic module not initialized properly</code></pre>

本练习的目的是能够将DES.pydtest.py 发送给我的朋友,而无需他们构建和安装pycrypto(PITA)。我完全理解我上面的代码完全不涉及 DES,它无法导入它的事实是我的主要好奇心。接下来是使用 DES 的真实代码。

另外,如果我像 from Crypto.Cipher import DES 这样直接从 python 路径导入 DES.pyd 就可以了。

谢谢!

【问题讨论】:

    标签: python des pycrypto pyd


    【解决方案1】:

    查看https://github.com/dlitz/pycrypto/blob/master/src/block_template.c#L801 的源代码。模块名称被硬编码为Crypto.Cipher._DES。如果_DES.pyd 不在Crypto.Cipher 包目录中,初始化将失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2013-09-05
      • 2015-05-08
      相关资源
      最近更新 更多