我正在使用MinGW使用Swig构建PythonC模块。当我告诉Python加载模块时,它会失败并抱怨Python无法找到该模块。
有趣的是,该模块与我在中运行Python的目录位于同一目录中,而模块名为_mod.pyd
。 (我还生成了mod.py
文件,该文件在同一路径中使用_mod.pyd
。)
令人沮丧的是你不相信!
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "mod.py", line 25, in <module>
_mod = swig_import_helper()
File "mod.py", line 21, in swig_import_helper
_mod = imp.load_module('_mod', fp, pathname, description)
ImportError: DLL load failed: The specified module could not be found.
它干净地构建(我正在使用distutils)并且我所有的dll都位于已经暴露给PATH的目录中。
我使用的是Windows XP + MinGW平台(最新稳定的MinGW)。
谢谢!
答案 0 :(得分:1)
这是一个常见问题。您可能正在使用Python for Windows的二进制版本,它使用MSC而不是MinGW编译。从命令行运行它时,您可以看到解释器所说的内容。如果是这种情况,您有两种选择:
对于后一种选择,祝你好运。我从来没能做到。
答案 1 :(得分:0)
我在MinGW网站的“我如何创建Python扩展?”
下浏览了这篇文章我知道pexports有一个技巧但是,我已经测试了几次,很少/没有成功(我记得)。有没有其他人能够成功地工作?
欢呼声,
CT
更新
我也找到了这个教程 - &gt; http://boodebr.org/main/python/build-windows-extensions 本教程 - &gt; http://www.mail-archive.com/modwsgi@googlegroups.com/msg04655.html
我认为它可以像运行一样简单:“setup.py build -c mingw32”
答案 2 :(得分:0)
你有没有尝试过:
python setup.py build --compiler = mingw32