1

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

谢谢!

4

3 回答 3

1

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

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

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

于 2010-02-18T09:21:39.833 回答
0

我在 MinGW 网站上的“如何创建 Python 扩展?”下看到了这篇文章。

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

我知道 pexports 有一个技巧,但是我已经测试了几次,但几乎没有成功(我记得)。有没有其他人能够成功地做到这一点?

干杯,

ct

更新

我还找到了本教程-> http://boodebr.org/main/python/build-windows-extensions 和本教程-> http://www.mail-archive.com/modwsgi@googlegroups.com/msg04655.html

我认为它可以像运行一样简单:“setup.py build -c mingw32”

于 2010-10-04T18:00:26.627 回答
0

你试过了吗:

python setup.py build --compiler=mingw32

?

于 2010-10-19T10:36:04.470 回答