Seite 1 von 1

Fehlerhafte ausführung nach kompilierung

Verfasst: Montag 12. April 2010, 08:33
von elactic
hallo alle zusammen :D

ich habe ein kleine prblem mit einem programm, das ich mir grad geschrieben habe, das mir zeitgesteuert meinen rechner (oder evtl einen anderen im LAN) herunterfahren soll. dazu setz ich mir entsprechend der eingaben in der maske (tkinter) einen windows befehl im schema 'shutdown -s -f ...' zusammen.
wenn der timer abgelaufen ist, wird dieser dann ausgeführt
hier mal der textausschitt, der relevant sein könnte:

Code: Alles auswählen

    
   def count(self, speed=1000):                          
        if not self.abort:                    #abort gehört zu einem abbruch button
            self.counter -= 1                    # self.counter ist die eingestellte zeit die runterläuft
            if self.counter==30:
                Nachricht()                    # hier kommt ein kleines fenster hoch, das warnt, dass nurnoch 30sek bleiben
            if self.counter >= 0:
                self.timer.set(self.zeiteinheit())                    # hier wird ein label geänder um den countdown anzuzeigen
                self.master.after(speed, self.count)     
            else:
                self.action=1
                self.do_it()                    # wenn die zeit abgelaufen ist, wird do_it ausgeführt



    def do_it(self):

        cmd="shutdown -f"                    #das 'grundgerüst' wird erweitert durch
        cmd+=self.get_modus()                    #fügt den modus (also '-s' oder '-r') bei
        if self.lan.get():
            cmd+=self.get_lan()                    #fügt den computernamen bei, wenn ein rechner im netzwerk abgeschltet werden soll

        Popen(cmd)                    # führt den befehl aus

das funktioniert ja auch alles,
ABER
nachdem ich das skript mit py2exe kompiliert (ich weiß, es wird nicht wirklich kompiliert) habe, wird nach ablauf des timers nicht der befehl ausgeführt, sondern eine neue instanz des programms ausgeführt. es springt also einfach ein neues fenster hoch...

versteh ich leider garnicht

ich hätte es gern als exe, weil ich das nem kumpel geben wollte der mit programmierung garnichts am hut hat, weshalb es affig wär bei dem die pythonumgebung zu installieren

ich hoffe ihr könnt mir helfen
lg
elactic

Verfasst: Montag 12. April 2010, 09:53
von BlackJack
@elactic: Dein Programm heisst jetzt aber nicht zufällig auch `shutdown` oder? Falls ja, dann rate mal was da in `do_it()` gestartet wird.

Verfasst: Montag 12. April 2010, 10:42
von elactic
BlackJack hat geschrieben:Dein Programm heisst jetzt aber nicht zufällig auch `shutdown` oder?
OMFG doch natürlich heißt es so... :oops:
daran hatte ich schon gedacht, aber ich dachte (aus welchm grund auch immer) dass es das nicht sein kann, wenn es doch als .py nich funktioniert...
aber wenn das so wäre, dann müsste der fehler doch auch auftreten, wenn ich das programm aus der konsole ausführe, oder?
aber egal, der fehler ist offensichtlich
danke nochmal =)

Verfasst: Montag 12. April 2010, 11:31
von Leonidas
elactic hat geschrieben:aber wenn das so wäre, dann müsste der fehler doch auch auftreten, wenn ich das programm aus der konsole ausführe, oder?
Nein, weil es da nicht ``shutdown`` heißt.

Verfasst: Montag 12. April 2010, 11:43
von elactic
Leonidas hat geschrieben:
elactic hat geschrieben:aber wenn das so wäre, dann müsste der fehler doch auch auftreten, wenn ich das programm aus der konsole ausführe, oder?
Nein, weil es da nicht ``shutdown`` heißt.
ähh was ich in die konsole eintippe ist

cd desktop
python shutown.py

war das nicht das problem?

Verfasst: Montag 12. April 2010, 12:18
von Leonidas
elactic hat geschrieben:
Leonidas hat geschrieben:
elactic hat geschrieben:aber wenn das so wäre, dann müsste der fehler doch auch auftreten, wenn ich das programm aus der konsole ausführe, oder?
Nein, weil es da nicht ``shutdown`` heißt.
ähh was ich in die konsole eintippe ist

cd desktop
python shutown.py

war das nicht das problem?
Ja, so heißt es ``shutdown.py``. Wenn du es mit py2exe umwandelst heißt es ``shutdown.exe`` was für Windows das gleiche ist wie ``shutdown``. Das ist das Problem.

Verfasst: Montag 12. April 2010, 13:10
von elactic
Ja, so heißt es ``shutdown.py``. Wenn du es mit py2exe umwandelst heißt es ``shutdown.exe`` was für Windows das gleiche ist wie ``shutdown``. Das ist das Problem.
aso also ist es die endung? in der konsole brauch ich eine *.exe nicht mehr angeben?
danke für die schnellen antworten =)

Verfasst: Montag 12. April 2010, 14:47
von Leonidas
elactic hat geschrieben:aso also ist es die endung? in der konsole brauch ich eine *.exe nicht mehr angeben?
Naja, nicht nur die Endung, sondern auch der Fakt dass es sich um eine für Windows direkt ausführbare Datei handelt.