2013-04-18 46 views
6

也许一个愚蠢的问题,但我想知道Python的distutils从哪里得到编译器选项?它得到了一些链接的目录错误,我想彻底改正这一点。Distutils编译器选项配置

我知道应该有一个前缀/ lib/pythonver/distutils/distutils.cfg,但我无法在计算机上的任何位置找到任何distutils.cfg。显然我没有本地的setup.cfg或任何$ HOME/.pydistutils.cfg。

我使用的是Mac OS X 10.8.3

干杯Enthought 64位发行,版本7.3(Python 2.7版), U.

回答

6

我其实它们导出到环境中,只是像自动工具配置:

export CC=/usr/local/bin/clang 
export CFLAGS=-I${HOME}/include 
export LDFLAGS=-lboost 

如果您还需要单独改写链接:

export LDSHARED=/usr/local/bin/clang -shared 

如果你不喜欢export荷兰国际集团到您的环境的设置,一次性设置做这样的事情:

CC=/usr/local/bin/clang CFLAGS=-I${HOME}/include python setup.py build 

如果你想找出什么是默认选项为当蟒蛇是构建,使用python-config --<flag>。一些标志是cflags,ldflags,libsincludes

+0

好吧,那会设置变量,但它们现在不设置,所以distutils从哪里获取它们?我还没有发现python文件中的任何提示,distutils会在其他地方读取它。 – Mulle

+0

另请参见埃里克的答案;如果没有配置文件(你说它不存在),那么编译器标志确实遵循原始的configure/make标志,因此也可以用'python-config --cflags'等来看。 – Evert

+0

啊,它们是!由于我没有编译Python,但采用了EPD发行版,我不会拥有Makefile。但是现在我知道去哪里看什么和做什么。干杯! – Mulle

3

编译选项取自CPython的Makefile。 IOW它们与用于编译Python的相同。您可以像Evert描述的那样在命令行中覆盖大部分。

全局distutils.cfg是sysadmin 可以创建以设置默认选项,而不是使用Python安装的文件。