Python Programm aufrufen aus Python CGI-Skript

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Grenne
User
Beiträge: 3
Registriert: Dienstag 4. Februar 2003, 17:27
Kontaktdaten:

Wie kann ich aus einem Python Cgi-Skript ein anderes Skript aufrufen und diesem dabei Parameter übergeben? Das Skript was aufgerufen werden soll ist kein CGI-Skript sondern ein ganz normales Python Skript was auf dem Linux Server ausgeführt werden soll.

Ich habe es mit dem exec Befehl probiert. Da kann man aber keine Parameter übergeben.

Danke für eventuelle Lösungen!!!
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

das macht man genauso wie man es in normalen Pythonscripts macht mit z.B. popen oder popen3. Ich kenn mich damit abe rnicht besonders gut aus, du müsstest dir mal die Doku zum Modul os durchlesen:
Grenne
User
Beiträge: 3
Registriert: Dienstag 4. Februar 2003, 17:27
Kontaktdaten:

Danke für die Antwort. Aber irgendwie hilft mir dass auch nicht so richtig weiter, da ich nicht unbedingt ein Python-Profi bin. Aus der Doku werde ich leider nicht schlau.

Also vielleicht erkläre ich nochmal was mein Problem ist.

Ich möchte aus einem Python CGI-Skript (1.) ein anderes Python Skript (2.) starten, welches wiederum ein neues CGI-Skript (3.) aufrufen soll. Dabei soll das zweite Skript verschiedene Parameter übergeben bekommen und auch wieder welche an des 3. Skript übergeben.
Müsste das nicht so ähnlich wie bei der Kommandozeilenparamterübergabe funktionieren???
(skript2.py param1 param2 .....)
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi Grenne,

die einfachste Möglichkeit ist exec[l|v]() daneben gibts noch popen und spawn in den verschiedenen Varianten. Beschreibung gibts hier http://www.python.org/doc/current/lib/os-process.html Was Du verwendest, hängt davon ab, ob Du nach dem Aufruf des nächsten Scripts noch weitere Sachen im aufrufenden Script machen willst oder nicht. Alternativ kannst Du auch ein Script importieren, dann wird auch alles innerhalb des Scripts ausgeführt was nicht in einer Funktionsdefinition steht und Du kannst auf Variablen, Classen und Funktionen des importierten Scripts zugreiffen.
Ich würde An Deiner Stelle, die Sachen, die die beiden aufzurufenden Scripte machen, in eine Funktionsdefinition packen, die Scripte importieren und dann wenn es gebraucht wird die Funktion ausführen.


Gruß

Dookie
Grenne
User
Beiträge: 3
Registriert: Dienstag 4. Februar 2003, 17:27
Kontaktdaten:

Vielen Dank für die Hilfe. Mit exec(*) funktionierts. :D
Antworten