also, ich habs doch nicht lösen können
hatte nur die eine subroutine in den einstellungen deaktiviert und vergessen zu reaktivieren gehabt, dashalb liefs.
also, nach wie vor läuft das programm 1a, wenn ich es manuell aus der konsole starte aber läuft nicht, wenn ich es aus der def main aufrufe. vermutlich aufgrund von fehlern.
kann ich ihm eventuell sagen er soll die meldungen ignorieren und trotzem alles ausführen? eventuell mittels sowas wie OSError?
oder geht das nicht?
das mit dem subprocess krieg ich irgendwie nciht hin. das will er nicht annehmen. meine syntax stimmt nicht.
Code: Alles auswählen
import subprocess
subprocess.call(["skript.py", "/testerei/skripte/", "arg1", "arg2"])
wäre das so richtig oder ist das falsch?
ansonsten bin ich nciht sicher, ob subprocess vielleicht das ist wonach ich jetzt frage, denn ich hab die erklärung nicht 100% verstanden, abe ist es möglich einen prozess einfach abzusetzen, ohne irgendwie den prozess weiter zu überwachen?
sprich, er soll nicht prüfen, ob die datei fehler hat oder illegale operationen, die im def main nicht laufen dürfen, sondern mehr sowas wie echo "hallo", bei dem eifnach nur ein befehl rausgeht und auf nichts und niemanden gewartet wird und nichts eprüft wird?
ich nehme mal an, dass wenn ich sowas machen würde:
Code: Alles auswählen
import os
def main(session, **kwargs):
session.open(next)
def next(session, **kwargs):
self.session = os.system('python/skripte/skript.py')
das trotzdem nicht geht, weil er zwar ein anderes aufruft aber er nach wie vor innerhalb des main ausführt?
muss doch irgendwie gehen, dass er sich für nix interessiert und einfach nur exakt das gleiche macht als wenn ich in der konsole "./skipt.py" eingebe.
denn dann funktionierts.
meinetwegen darf er statt des python skripts auch ein shell skript aufrufen und das ruft dann das python skript auf, aber ich nehme an, dass ich dann wieder innerhalb des main bin und es einfach nun 2 unterprozesse sind, die innerhalb main laufen.
EDIT: ganz vergessen, das hier ist der exec aufruf, der angeblich nicht erlaubt ist in def main:
Code: Alles auswählen
exec('import '+DDIR+'.' + mod_name)
exec('fetchdata='+DDIR+'.'+ mod_name +'.get_cache(CONF_DLMODDIR,CONF_CACHEDIR,FIELD_SEPARATOR)')