我正在编译Linux中的一些cython扩展,并注意到从distutils机制构建时默认使用-O2。我想知道是否有一种简单的方法可以将其更改为-O3。
我尝试在Extension对象上使用extra_compile_args,但这会导致-O2和-O3作为参数传递给gcc。我有点想玩其他深奥的gcc选项,因此希望我能控制编译步骤。一个显而易见的问题是“为什么我不运行cython my.pyx并手动编译结果?”。我很乐意,是我的答案......但是从命令行运行时,/ usr / local / bin /中的cython可执行文件会抛出一个DistributionNotFound:Cython == 0.12.1错误。我还没想出那一个。
无论如何,我不确定它是一个cython的东西,一个distutils的东西或一个破坏的apt包装的东西。我只是从ubuntu 11.10 apt repo中抓取了cython(目前正在使用ubuntu 11.10)。
答案 0 :(得分:11)
在setup.py中使用extra_compile_args = [“ - O3”],“-O3”应该在-O2选项覆盖之后出现。检查共享对象(.so或.dll)大小,以便快速确认。
的Davide
答案 1 :(得分:2)
larsmans评论是对的 - 使用/ usr / bin / cython解决了我的问题。