Python-Skript läuft nicht in crontab und ruft pysaunter auf

Ich habe mehrere Posts und viele Artikel gelesen, die ausführlich beschreiben, dass Skripte in einem Cron-Job die Umgebungsvariablen enthalten müssen, die für die Ausführung im Skript selbst erforderlich sind, da Shells in Cron geöffnet werden. Meine Situation ist insofern einzigartig, als meine Pfadvariablen alle wie besprochen festgelegt werden, was wiederum erfolgreich das Python-Ei pysaunter using aufruftsubprocess.call (), aber es scheint von dort zusammenzubrechen. Dies führt dazu, dass der gesamte Prozess einen Cron-Job abbricht.

Zur Verdeutlichung sind hier die Schritte, auf die ich mich beziehe:

1) cronjob calls run_test.py -n foo
2) run_test.py sets the environment variables correctly 
(cur_shell_path=sys.path (converted to proper path string, not shown here)
 my_env= os.environ.copy()
 my_env["PATH"] = my_env["PATH"] + cur_shell_path)
3) run_test.py calls subprocess.call("pysaunter -m foo -v", env=my_env, shell=True)

Die Ausgabe von Schritt 3 zeigt, dass es das Ei findet und erfolgreich beginnt, die erforderlichen Module von pysaunter zu laden, aber dann bricht es ab, wenn versucht wird, ein Verzeichnis zu finden, das zum Ändern von pysaunter verwendet wird. Der Fehler lautet:

ImportError: no module named helpers

Ich habe mehrmals versucht, diesen Pfad zur Umgebung hinzuzufügen, aber es scheint nie, das Verzeichnis zu finden, das helpers.py enthält. Der Befehlpysaunter -m foo -v Funktioniert normal, wenn es von einer interaktiven Shell aufgerufen wird.

Ich konnte nicht viel Hilfe für pysaunter finden, daher gehe ich davon aus, dass zu viele pysaunter-Details hier unnötig wären. Wenn Sie jedoch mehr über pysaunter wissen, lassen Sie es mich bitte wissen, wenn Sie weitere Informationen benötigen. Ich bin nicht sicher, was ich teilen soll.

Ich habe auch viele Beiträge gelesen, in denen die Möglichkeit zum Ändern des Standardverhaltens einer Shell durch Bearbeiten des .profile / .bash_profile behandelt wurde. Ich habe versucht, einen Ort zu finden, an dem meine Pfadvariablen global verfügbar sind, aber ich konnte nichts finden. Ich bin nicht sicher, wie das gemacht wird, und es könnte mein Problem beheben. Wenn Sie etwas darüber wissen, lassen Sie es mich bitte wissen.

Letzter Hinweis: Dies läuft unter Mac 10.7.5.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage