Fehlerhafte ausführung nach kompilierung

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
elactic
User
Beiträge: 18
Registriert: Mittwoch 16. Dezember 2009, 14:49

Montag 12. April 2010, 08:33

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
BlackJack

Montag 12. April 2010, 09:53

@elactic: Dein Programm heisst jetzt aber nicht zufällig auch `shutdown` oder? Falls ja, dann rate mal was da in `do_it()` gestartet wird.
elactic
User
Beiträge: 18
Registriert: Mittwoch 16. Dezember 2009, 14:49

Montag 12. April 2010, 10:42

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 =)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 12. April 2010, 11:31

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
elactic
User
Beiträge: 18
Registriert: Mittwoch 16. Dezember 2009, 14:49

Montag 12. April 2010, 11:43

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?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 12. April 2010, 12:18

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
elactic
User
Beiträge: 18
Registriert: Mittwoch 16. Dezember 2009, 14:49

Montag 12. April 2010, 13:10

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 =)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 12. April 2010, 14:47

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten