Ich bin neu bei Scons und Python. Ich frage mich, ob es eine Möglichkeit gibt, scons aus einem Python-Skript heraus aufzurufen.Scons aus einem Python-Skript aufrufen
Mein Python-Skript akzeptiert vom Benutzer eine Liste von Verzeichnissen, in denen sich der zu kompilierende Code befindet (zusätzlich zu einigen anderen nicht-trivialen Dingen). Es generiert auch eine Zeichenfolge, die als Name der ausführbaren Datei von SCONS verwendet werden soll.
Ich möchte diese Informationen von meinem Python-Skript an Scons übergeben und dann Scons aufrufen. Gibt es eine einfache Möglichkeit, dies zu tun?
ich die folgenden Möglichkeiten denken kann:
- Verwendung
subprocess.call("scons"...)
Ich bin nicht sicher, ob scons alle Informationen, die ich als Befehlszeilenargumente übergeben muß akzeptiert - den Python-Skript haben, schreiben in eine Datei . Lassen Sie das SConscript die Datei analysieren und die Informationen erhalten.
Ich schaute in direkt aufrufen 'SCons.Script.main()' einmal, und entschied, dass es nicht wert war. Ich legte den Anruf in einen Subprozess.call() 'Aufruf und Handhabung der Befehlszeilenargumente wie in meiner Antwort erwähnt. Ich glaube, dass der Versuch, das eigentliche SCON-Skript zu umgehen, zu einer Welt der Verletzung führen könnte. – Brady
Ich denke, das beantwortet meine Frage nicht: Wenn ich mein Python-Skript vom SConscript aus anrufe, wie gebe ich ihm Informationen weiter, die ich gerade habe erhalten _before_conscones aufrufen? –
Gibt es eine echte Notwendigkeit, Ihr Skript vor Scons aufzurufen? Sie können Ihr Skript als ein Modul aus der SConscript-Datei importieren und dann bei Bedarf ausführen, um die erforderlichen Eingaben vom Benutzer zu sammeln. Obwohl technisch nicht gleich, gibt es für den Benutzer keinen Unterschied. Wenn das keine Option ist, dann ist die von Brandy vorgeschlagene Route eine machbare Lösung. –