我该如何重写setup.py默认使用的编译器(gcc)标志?
我知道setup.py使用了与用于构buildpython相同的CFLAGS。 我有一个C扩展我们的是segfaulting。 我需要在不使用 -O2 情况下构build它,因为-O2正在优化某些值和代码,以便核心文件不足以解决问题。 
 我只需要修改setup.py,以便不使用-O2 。 
 我已经阅读distutils文档,特别是distutils.ccompiler和distutils.unixcompiler ,看看如何添加标志和库和包括,但不是如何修改默认的gcc标志。 
具体来说,这是针对Python 2.5.1上的一个遗留产品,带有一些后端(Fedora 8,是的,我知道…)。 不,我不能改变操作系统或Python版本,我不能,没有很大的问题,重新编译python。 我只需要为其中一个环境是唯一的一个客户的客户build立一个C扩展。
- 
在运行 setup.py之前,请预先CFLAGS="-O0":% CFLAGS="-O0" python ./setup.py在编译时, -O0将被附加到CFLAGS,因此将覆盖之前的-O2设置。
- 
另一种方法是在 setup.py中将-O0添加到extra_compile_args中:moduleA = Extension('moduleA', ....., include_dirs = ['/usr/include', '/usr/local/include'], extra_compile_args = ["-O0"], )
- 
如果你想删除所有的默认标志,使用: % OPT="" python ./setup.py