2013-04-18 19 views
6

Może to głupie pytanie, ale zastanawiałem się, gdzie distutils Pythona otrzymują opcje kompilatora? To powoduje, że niektóre powiązane katalogi są błędne i chcę to poprawić raz na zawsze.Konfiguracja opcji kompilatora Distutils

Wiem, że powinien istnieć przedrostek/lib/pythonver/distutils/distutils.cfg, ale nie mogę znaleźć żadnego distutils.cfg w dowolnym miejscu na komputerze. Oczywiście nie mam lokalnego setup.cfg ani żadnego $ HOME/.pydistutils.cfg.

Używam Enthought 64-bitowej dystrybucji, wersja 7.3 (Python 2.7) na Mac OS X 10.8.3

Cheers, U.

Odpowiedz

6

I rzeczywiście eksportować je do otoczenia, po prostu jak dla configure Autotools':

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

Jeśli trzeba także zastąpić łącznik oddzielnie:

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

A jeśli nie podoba export ing ustawienia dla danego środowiska, zrobić coś takiego dla jednorazowej konfiguracji:

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

Jeśli chcesz dowiedzieć się, jakie są opcje domyślne były kiedy zbudowano pyton , użyj python-config --<flag>. Niektóre flagi są cflags, , libs lub includes.

+0

W porządku, to ustawi zmienne, ale nie są one ustawione teraz, więc skąd je pobierają distutils? Nie znalazłem żadnej wskazówki w plikach Pythona, które distutils odczytałoby gdzieś indziej. – Mulle

+0

Zobacz także odpowiedź Erica; jeśli nie ma pliku konfiguracyjnego (mówimy, że go tam nie ma), flagi kompilatora rzeczywiście podążają za oryginalnymi flagami configure/make, a więc można je również zobaczyć za pomocą 'python-config --cflags' itd. – Evert

+0

Ah, tam są ! Ponieważ nie skompilowałem Pythona, ale przyjąłem dystrybucję EPD, nie miałbym chyba Makefile. Ale teraz wiem, gdzie patrzeć i co robić. Twoje zdrowie! – Mulle

3

Opcje kompilatora są pobierane z Makefile CPythona. IOW są takie same jak te używane do kompilowania Pythona. Większość z nich można zastąpić w wierszu poleceń, jak opisano w Evert.

Globalne distutils.cfg to coś, co sysadmin może utworzyć, aby ustawić domyślne opcje, a nie plik instalowany z Pythonem.

Powiązane problemy