5

我正在使用 Cython 迈出第一步,并根据wiki 中的说明将其安装在我的机器上。

通过 Cython 教程,我得到了pyximport,它应该使 cython 编译变得非常简单。但是,当我尝试使用它时,我收到以下错误消息(重新格式化):

ImportError: Building module failed: 
DistutilsPlatformError('
    Python was built with Visual Studio 2003;
    extensions must be built with a compiler than can generate compatible binaries.
    Visual Studio 2003 was not found on this system. If you have Cygwin installed,
    you can try compiling with MingW32, by passing "-c mingw32" to setup.py.',)

所以我的问题是:有人知道让 pyximport 使用 mingw 的方法吗?

请注意,mingw 似乎已正确安装,制作 Cython 模块(使用 setup.py)的漫长方法确实为我工作,而且我什至创建了一个distutils.cfgwiki 告诉我的文件。

4

3 回答 3

13

我最近在闲逛,发现了 pyximport.install 的 setup_args 参数。这对我有用:

mingw_setup_args={'options': {'build_ext': {'compiler': 'mingw32'}}}
import pyximport; pyximport.install(setup_args=mingw_setup_args)
于 2010-03-26T23:16:04.237 回答
10

也许这样(来自邮件列表)

c:\Python2x\Lib\distutils\distutils.cfg:

[build]
compiler = mingw32

[build_ext]
compiler = mingw32 
于 2010-11-04T23:42:13.220 回答
1

您还可以在您的主页下创建一个“ pydistutils.cfg ”文件,以便获得以下路径之一:“ C:\Documents and Settings\YourUsername\pydistutils.cfg ”或“ C:\Users\YourUsername\pydistutils.cfg ” .

然后加:

[build_ext]

编译器=mingw32

到那个文件。还要确保你的路径上有"MinGW"的 gcc。从那时起,当您使用“import pyximport; pyximport.install()”时,cython 应该在您的主文件夹下生成一个名为“.pyxbld”的文件夹(见上文)。在 Windows 上,此文件夹将包含由 cython 生成的所有“ .c、.o、.pyd、.def ”文件。

快乐的cythoning!

于 2010-11-19T18:22:38.803 回答