使用pyximport时如何设置Cython编译器标志?

时间:2014-11-09 22:15:00

标签: python cython

这个问题(How does one overwrite the default compile flags for Cython when building with distutils?)描述了在使用distutils时如何设置默认的Cython标志。

但是,如果我只使用pyximport?

,如何设置默认编译标志
import pyximport
pyximport.install()  # Pass compile flags here somehow?

1 个答案:

答案 0 :(得分:15)

您应该使用.pyxbld文件,例如参见this question。 对于名为foo.pyx的文件,您将创建一个foo.pyxbld文件。以下内容将提供额外的优化参数:

def make_ext(modname, pyxfilename):
    from distutils.extension import Extension
    return Extension(name=modname,
                     sources=[pyxfilename],
                     extra_compile_args=['-O3', '-march=native'])

我认为有可能将额外的设置选项传递给pyximport.install,如果你跳过足够的箍(弄乱distribute)以获得它喜欢的形式的setup_args,但是在它建议使用pyximport文件的.pyxbld模块文档,并且在pyximport的测试代码中仅测试该方法,因此如果有另一种方法,则应将其视为不稳定/未测试且{ {1}}应被视为执行此操作的正确方法。

相关问题