当我从 IdleX 编译一个 cython .pyx 文件时,构建 shell 窗口会弹出一堆警告,在不到一秒钟后再次关闭。
我认为 pyximport 使用 distutils 来构建。如何将 gcc 警告写入文件或输出延迟或等待按键?
您可以添加 .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'])
我自己没有对 cython 做过任何事情,但我想你可以使用命令行来构建。这样,您将看到所有消息,直到您关闭实际的命令行,除非发生一些真正致命的错误。
是的,这是在文件中获取输出的方法(以防警告溢出命令提示符):
这适用于 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