这个问题(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?
答案 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}}应被视为执行此操作的正确方法。