2013-04-18 47 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安裝的文件。