extra_compile_args
を使用して、いくつかの追加オプションをCython
コンパイラに渡したいと思います。
私のsetup.py
:
from distutils.core import setup
from Cython.Build import cythonize
setup(
name = 'Test app',
ext_modules = cythonize("test.pyx", language="c++", extra_compile_args=["-O3"]),
)
ただし、python setup.py build_ext --inplace
を実行すると、次の警告が表示されます。
UserWarning: got unknown compilation option, please remove: extra_compile_args
質問:extra_compile_args
を正しく使用するにはどうすればよいですか?
Cython 0.23.4
の下でUbuntu 14.04.3
を使用します。
cythonize
を使用しない従来の方法を使用して、追加のコンパイラオプションを提供します。
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
setup(
name = 'Test app',
ext_modules=[
Extension('test',
sources=['test.pyx'],
extra_compile_args=['-O3'],
language='c++')
],
cmdclass = {'build_ext': build_ext}
)
Mike Mullerの答えは機能しますが、.pyx
が次のように指定されている場合、--inplace
ファイルの隣ではなく、現在のディレクトリに拡張機能を構築します。
python3 setup.py build_ext --inplace
したがって、私の回避策は、CFLAGS文字列を作成し、env変数をオーバーライドすることです。
os.environ['CFLAGS'] = '-O3 -Wall -std=c++11 -I"some/custom/paths"'
setup(ext_modules = cythonize(src_list_pyx, language = 'c++'))