0

当我从 IdleX 编译一个 cython .pyx 文件时,构建 shell 窗口会弹出一堆警告,在不到一秒钟后再次关闭。

我认为 pyximport 使用 distutils 来构建。如何将 gcc 警告写入文件或输出延迟或等待按键?

4

3 回答 3

3

您可以添加 .pyxbld 文件来指定 Cython 构建设置。

假设您正在尝试编译yourmodule.pyx ,只需在名为yourmodule.pyxbld的同一目录中创建一个文件,其中包含:

def make_ext(modname, pyxfilename):
    from distutils.extension import Extension
    ext = Extension(name = modname,
        sources=[pyxfilename])

    return ext

def make_setup_args():
    return dict(script_args=['--verbose'])

--verbose 标志使 pyximport 打印 gcc 的输出。

请注意,您可以轻松添加额外的编译器和链接器标志。例如,要使用 Cython 的 prange() 函数,您必须针对 OpenMP 库进行编译和链接,这是使用 Extension 类的关键字指定的:

ext = Extension(name = modname,
    sources=[pyxfilename],
    extra_compile_args=['-fopenmp'],
    extra_link_args=['-fopenmp'])
于 2014-05-27T12:36:25.910 回答
1

我自己没有对 cython 做过任何事情,但我想你可以使用命令行来构建。这样,您将看到所有消息,直到您关闭实际的命令行,除非发生一些真正致命的错误。

于 2013-05-23T09:01:18.733 回答
1

是的,这是在文件中获取输出的方法(以防警告溢出命令提示符):

这适用于 Windows,但您可以轻松适应 *unices :

SET PYTHONPATH=%PYTHONPATH%;../../../DEPENDENCIES/Cython-0.18
SET PATH=%PATH%;../../../DEPENDENCIES/Cython-0.18/bin

python setup.py build_ext --inplace > output.log
于 2013-05-24T01:42:43.253 回答