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

Tho*_*son 7 python cython

这个问题(在使用distutils构建时如何覆盖Cython的默认编译标志?)描述了在使用distutils时如何设置默认的Cython标志.

但是,如果我只使用pyximport,如何设置默认编译标志?

import pyximport
pyximport.install()  # Pass compile flags here somehow?
Run Code Online (Sandbox Code Playgroud)

Bla*_*lsh 16

您应该使用.pyxbld文件,例如查看此问题.对于名为的文件foo.pyx,您将创建一个foo.pyxbld文件.以下将提供额外的优化args:

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

我认为有可能传递额外的设置选项,pyximport.install如果你跳过足够的箍(乱搞distribute)以获得它喜欢的形式的setup_args,但是在pyximport模块文档中它建议使用.pyxbld文件,并在测试代码中因为pyximport只有那种方法被测试,所以如果有另一种方式它应该被认为是不稳定/未经测试的,.pyxbld应该被认为是这样做的正确方法.