Python + SWIG + MinGW - setup.py构建源文件和pyd文件,python“找不到模块”

时间:2010-02-14 19:04:44

标签: python mingw swig

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

谢谢!

3 个答案:

答案 0 :(得分:1)

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

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

对于后一种选择,祝你好运。我从来没能做到。

答案 1 :(得分:0)

我在MinGW网站的“我如何创建Python扩展?”

下浏览了这篇文章

http://www.mingw.org/wiki/FAQ

我知道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