我正在使用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)。

谢谢!

最佳答案

这是一个普遍的问题。您可能正在使用Windows的Python二进制版本,该版本是通过MSC而不是MinGW编译的。您可以从命令行运行解释器时看到解释器说的内容。如果是这种情况,您有两种选择:


用MSC编译模块或
用MinGW编译python解释器。


对于后一种选择,祝您好运。我从来都做不到。

关于python - Python + SWIG + MinGW-setup.py构建源代码和pyd文件,python“找不到模块”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2262351/

10-11 22:07
查看更多