Seite 1 von 1
script unter windows ausführen
Verfasst: Freitag 19. Februar 2010, 12:12
von pPilger
Hallo,
ich habe ein kleines script, welches in einem Zeitintervall einige Aufgaben abarbeitet und die Ergebnisse in einem scrolltext-widget per tkinter anzeigt.
Funktioniert soweit einwandfrei.
Nun soll es über den Windows-Scheduler gestartet werden, aber da geht es "nicht richtig los". Das tkinter-fenster wird nicht angezeigt, und meine Aufgaben werden per after wahrscheinlich auch nicht ausgeführt.
Keine Fehlermeldungen.
Starte ich das script über die cmd-console funktioniert es.
Starte ich es über den Datei-Explorer mit "Start per IDE" geht es auch.
Wo liegt da mein Fehler?
Unter Linux läuft es einwandfrei in der IDE (eric) und auch per Ausführen im Terminal.
Grüße
Verfasst: Freitag 19. Februar 2010, 12:26
von ms4py
Batch-Script schreiben, das in das Verzeichnis der *.py-Datei wechselt und diese dann ausführt.

Verfasst: Freitag 19. Februar 2010, 12:45
von mkesper
Hmm, ich glaube das ist noch trickyer. Das Skript läuft in einem anderen Kontext, es braucht Zugriff auf den PC.
Vielleicht hilft das hier weiter:
http://bytes.com/topic/windows/answers/ ... uled-tasks
Verfasst: Freitag 19. Februar 2010, 15:47
von pPilger
ice2k3 hat geschrieben:Batch-Script schreiben, das in das Verzeichnis der *.py-Datei wechselt und diese dann ausführt.

Das Ergebnis ist leider das gleiche.
Verfasst: Freitag 19. Februar 2010, 16:03
von pPilger
Ich denke das hat mit dem Scheduler gar nix zu tun.
Wenn ich im Dateiexplorer per Doppelklick versuche das Script zu starten läuft es manchmal normal, und manchmal geht es offenbar nicht in den main_loop der form:
Code: Alles auswählen
mything = my_form()
mything.master.title ( "Meine Form" )
mything.mainloop()
Ich logge wichtige Ereignisse in eine db. Der Start wird in der Regel geloggt (noch for dem mainloop).
Keine Probleme gibt es wenn ich es aus der Python IDLE starte.
Grüße
Verfasst: Freitag 19. Februar 2010, 16:51
von ms4py
pPilger hat geschrieben:
Ich denke das hat mit dem Scheduler gar nix zu tun.
Wenn ich im Dateiexplorer per Doppelklick versuche das Script zu starten läuft es manchmal normal, und manchmal geht es offenbar nicht in den main_loop
Und was passiert, wenn es nicht in den Loop geht? Exception?
Und was ist mit dem Start über Kommandozeile?
Verfasst: Freitag 19. Februar 2010, 23:09
von pPilger
ice2k3 hat geschrieben:Und was passiert, wenn es nicht in den Loop geht? Exception?
Und was ist mit dem Start über Kommandozeile?
Keine Exception, sonst hätte ich ja einen Anhaltspunkt.
Über die Kommandozeile funktioniert es manchmal. Wenn nicht, keine Meldung, nix, einfach im Nirvana.
Verfasst: Montag 22. Februar 2010, 16:08
von mkesper
Wenn es aus IDLE heraus richtig startet, sonst aber nocht, verwendest du vermutlich Tkinter und hast Probleme mit deiner mainloop.
Verfasst: Donnerstag 25. Februar 2010, 20:45
von pPilger
mkesper hat geschrieben:Wenn es aus IDLE heraus richtig startet, sonst aber nocht, verwendest du vermutlich Tkinter und hast Probleme mit deiner mainloop.
Ja, TKinter. Und welche Probleme könnte ich haben?
Bzw. Wie krieg ich die raus?
Verfasst: Freitag 26. Februar 2010, 00:15
von EyDu
Hallo.
Bevor rumgeraten wird: hast du vielleicht ein Minimalbeispiel bei dem der Fehler auftritt? Beim Erstellen fällst du vielleicht schon von selbst über das Problem, wenn nicht, ist der Code für eine weitere Analyse hier sicher hilfreich.
Verfasst: Donnerstag 25. März 2010, 18:18
von pPilger
EyDu hat geschrieben:Hallo.
Bevor rumgeraten wird: hast du vielleicht ein Minimalbeispiel bei dem der Fehler auftritt? Beim Erstellen fällst du vielleicht schon von selbst über das Problem, wenn nicht, ist der Code für eine weitere Analyse hier sicher hilfreich.
Es hat etwas gedauert.
Jetzt hab ich mal alles raus was nicht nötig ist.
Das Problem ist also, dass dieses script nach unterschiedlicher Laufzeit einfach stehen bleibt.
Aber nur, wenn ich es mit pythonw.exe unter winXP ausführe.
Starte ich es per IDLE oder normal als py-script läuft es einwandfrei. Auch unter Linux gibts keine Probleme.
Woran kann das liegen?
Das script tut eigentlich nicht mehr als Daten aus einer Text-Datei herauszuholen und in Abhängigkeit vom Inhalt den Inhalt einer anderen txt-Datei zu lesen.
Hier der Code:
http://paste.pocoo.org/show/193893/
Verfasst: Donnerstag 25. März 2010, 18:48
von Hyperion
Bitte lagere Deinen Code in ein Paste-bin aus (paste.pocoo.org). Das Board verkraftet so viele Code nur schlecht!
Verfasst: Donnerstag 25. März 2010, 19:41
von HWK
Ich habe mir das Skript nicht richtig angeschaut, aber ich vermisse zumindest ein Tk().
MfG
HWK
Verfasst: Donnerstag 25. März 2010, 20:43
von pPilger
Hyperion hat geschrieben:Bitte lagere Deinen Code in ein Paste-bin aus (paste.pocoo.org). Das Board verkraftet so viele Code nur schlecht!
Hier ist es:
http://paste.pocoo.org/show/193893/
Verfasst: Freitag 26. März 2010, 17:46
von HWK
Hast Du es denn mal mit dem Einfügen eines "root widget"s Tk() versucht?
MfG
HWK
Verfasst: Freitag 26. März 2010, 21:05
von pPilger
HWK hat geschrieben:Hast Du es denn mal mit dem Einfügen eines "root widget"s Tk() versucht?
MfG
HWK
Also so: root = Tk()
Aber ich benutze doch dieses Frame-Modul, oder wie nennt man das richtig:
class my_form( Frame )
Der mainloop kann dann doch nur auf:
erfolgen und nicht auf dieses Tk-root.
Grüße
Verfasst: Samstag 27. März 2010, 10:21
von HWK
Verfasst: Samstag 27. März 2010, 10:30
von snafu
Tk-Fragen dürfen auch gern im TK-Forum gestellt werden.

Verfasst: Sonntag 28. März 2010, 14:30
von pPilger
HWK hat geschrieben:MfG
HWK
Ja, das hatte ich inzwischen gemacht, hat aber keine Änderung gebracht.
Danke