Jestem nowy w Scons i Pythonie. Zastanawiam się, czy istnieje sposób wywoływania scons z poziomu skryptu Pythona.Wywoływanie sconów ze skryptu w języku Python
Mój skrypt python akceptuje od użytkownika, listę katalogów, w których znajduje się kod, który ma być skompilowany razem (oprócz wykonywania innych, niebanalnych rzeczy). Generuje również ciąg znaków, który ma być użyty jako nazwa pliku wykonywalnego utworzonego przez scons .
Chcę przekazać te informacje z mojego skryptu Pythona do scons, a następnie wywołać scons. Czy istnieje prosty sposób na zrobienie tego?
mogę myśleć z następujących możliwości:
- użytku
subprocess.call("scons"...)
Nie jestem pewien, czy scons akceptuje wszystkie informacje trzeba przekazać jako argumenty wiersza poleceń - mają skrypt Pythona pisać do pliku . Poproś SConscripta o przeanalizowanie pliku i pobranie informacji.
Zajrzałem do bezpośredniego wywoływania 'SCons.Script.main()' raz i zdecydowałem, że nie było tego warte. Poszedłem po zawinięcie wywołania w podprocesie.call() 'wywołanie i obsługa argumentów wiersza poleceń, jak wspomniano w mojej odpowiedzi. Myślę, że próba ominięcia rzeczywistego skryptu scons może doprowadzić do świata zranienia :) – Brady
Myślę, że to nie odpowiada na moje pytanie: jak mogę wywołać mój skrypt Pythona z SConscript, w jaki sposób mogę przekazać mu informację, że mam właśnie otrzymałeś _ przedtem_ wywołując scons? –
Czy istnieje realna potrzeba wywołania scenariusza przed scons? Możesz zaimportować swój skrypt jako moduł z pliku SConscript, a następnie wykonać w razie potrzeby, zbierając niezbędne dane wejściowe od użytkownika. Choć technicznie nie to samo, nie ma różnicy w odniesieniu do użytkownika. Jeśli to nie jest opcja, wówczas proponowana przez Brandy droga jest wykonalnym rozwiązaniem. –