Python distutils, wie bekommt man einen Compiler, der benutzt wird?
Ich zum Beispiel kann die Verwendung python setup.py build --compiler=msvc
oder python setup.py build --compiler=mingw32
oder nur python setup.py build
in dem Fall der Standard-compiler (z.B. bcpp
) verwendet werden. Wie bekomme ich den compiler-Namen in meinem setup.py (e. g. msvc
mingw32
und bcpp
jeweils)?
UPD.: Ich brauche nicht den Standard-compiler benötige ich eine, die ist eigentlich verwendet werden, die nicht unbedingt dem Standard. Bisher habe ich noch nicht gefunden einen besseren Weg, als zu analysieren sys.argv
zu sehen, ob es eine --compiler...
string gibt.
InformationsquelleAutor der Frage Headcrab | 2009-04-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine erweiterte version der Luper Rouch Antwort, die für mich gearbeitet, um eine openmp-Erweiterung zu kompilieren mit beiden mingw und msvc auf windows. Nach Unterklassen build_ext, die Sie brauchen, um es zu übergeben, um setup.py in der cmdclass arg. Indem bilden von Unterklassen build_extensions statt finalize_options haben Sie die aktuelle compiler-Objekt zu schauen, also Sie können sich dann mehr detaillierte Informationen über die version. Sie konnte schließlich setzen compiler-flags auf einer pro-compiler, pro-Erweiterung basis:
InformationsquelleAutor der Antwort Jon
Können Sie eine Unterklasse der
distutils.command.build_ext.build_ext
Befehl.Einmal
build_ext.finalize_options()
- Methode aufgerufen wurde, wird der compiler Art gespeichert ist, inself.compiler.compiler_type
als Zeichenfolge (der gleiche wie der, der an diebuild_ext
's--compiler
option, z.B. 'mingw32', 'gcc', etc...).InformationsquelleAutor der Antwort Luper Rouch
InformationsquelleAutor der Antwort popelkopp
import distutils.ccompiler
compiler_name = distutils.ccompiler.get_default_compiler()
InformationsquelleAutor der Antwort attwad
InformationsquelleAutor der Antwort Cees Timmerman
Können Sie selbst.Verteilung.get_command_obj('build_ext') zu erhalten build_ext Instanz,
und dann bekommen die compiler_type
InformationsquelleAutor der Antwort lygstate