当运行以下代码时:
git clone https://github.com/cython/cython.git
sudo python setup.py install
使用默认编译参数编译 cython(Cython==0.24
)。 Apparently,过去可以添加:
extra_compile_args=["-O3"]
到setup.py
文件并控制它。但我只是试了一下(把这条线放在下面:
import platform
is_cpython = platform.python_implementation() == 'CPython'
)当我做的时候
sudo python setup.py install
所有文件仍然使用可怕的-O2
标志进行编译。如何解决这个问题?
(我正在使用linux)
答案 0 :(得分:1)
我很确定在运行export CFLAGS="-O3"
之前从终端使用setup.py
(正如我在评论中提到的)通常可以解决问题,但是,我刚刚意识到你要做的事情。
在为需要编译的文件创建Extention
对象时,需要提供extra_compile_args
作为参数。
extra_compile_args
是一个列表,其中包含您要提供的每个参数的字符串。
在setup.py
lib的Cython
脚本中,that is performed in lines 163-166如果我没有记错的话。
简而言之,如果您将这些行更改为:
extensions.append(Extension(
module, sources=[pyx_source_file],
extra_compile_args=["-O3"], # add the needed argument
define_macros=defines_for_module,
depends=dep_files))
它将确保编译的每个.pyx
文件都指定了-O3
参数。