2010-12-23 15 views
3

Ich baue eine Reihe von Python-Erweiterungen mit distutils. Die Erweiterungen hängen von externen Bibliotheken ab (die nicht mit Python zusammenhängen), die normalerweise mit Makefiles aus der Quelle erstellt werden. Diese externen Bibliotheken werden sich wahrscheinlich nicht oft ändern.Caching-Dateien für spätere Neuerstellungen mit Distutils

Um die Benutzer zu entlasten, holen meine setup.py-Skripte die Bibliotheken aus dem Web mithilfe von urllib.urlretrieve(), analysieren die Makefiles, um die Liste der relevanten Quelldateien zu sammeln, und erstellen mit config.add_library(). Das funktioniert gut und alles ist gut.

Meine Frage ist: Was ist die beste/empfohlene Möglichkeit, die heruntergeladenen Quelldateien zwischenzuspeichern, so dass Disteutils sie nicht noch einmal neu herunterladen, wenn ich neu erstelle? Ist es möglich, sie zum Beispiel in den Builds/src.macosx-10.6-x86_64-2.7 oder build/temp.macosx-10.6-x86_64-2.7 Ordnern zu speichern, die von distutils erstellt wurden? Wenn ja, wie fragt man den Namen dieser Ordner ab?

Vielen Dank im Voraus!

+0

'distutils.command.build' Instanz hat' self.build_temp' Attribut. – jfs

+0

Sie könnten die Binärbibliothek-Downloads während eines ersten Laufs anstelle eines Teils des Setup-Skripts zum Teil der Initialisierung des Programms machen. – Apalala

Antwort

1

Es sollte möglich sein, diese Ordner zu verwenden, hier ist wie zu get those names from distutils. Diese Ordner sind jedoch ziemlich volatil. Ich würde vorschlagen, ein leeres Verzeichnis in der Quelldistribution für den Empfang dieser Downloads zu haben, mit einer README-Datei, die seine Rolle als Build-Cache erklärt.

Verwandte Themen