当我从IdleX编译一个cython .pyx文件时,弹出的构建shell窗口会出现一堆警告,在不到一秒的时间内再次关闭。
我认为pyximport使用distutils来构建。如何将gcc警告写入文件或输出延迟或等待按键?
答案 0 :(得分: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'])
答案 1 :(得分:1)
我自己没有对cython做过任何事情,但我想你可以使用命令行进行建设。这样你就会看到所有的消息,直到你关闭实际的命令行,除非发生一些真正致命的错误。
答案 2 :(得分: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