text: Frage zum Starten von Programmen mit IDLE - Das deutsche Python-Forum
  Frage zum Starten von Programmen mit IDLE
  Registriert: Mittwoch 9. August 2006, 10:30
  Mittwoch 9. August 2006, 10:39
  Habe gestern mal angefangen, ein paar Beispiel-Programme in Python mit dem mitgelieferten IDLE zu schreiben. Hat auch alles wunderbar geklappt und wenn ich Strg + F5 drücke bzw. Run -> Run Module öffnet sich die IDLE-Shell und führt mein Programm aus.
  Nun würde ich gerne mal eines meiner Programme selber von der Shell aus starten, aber in dem Buch, welches ich zum lernen benutze, ist folgende Syntax für das Starten von Programmen angegeben:
  $ python nameDesProgramms.py
  Wenn ich das so eingebe, bekomme ich Fehlermeldungen. Leider sitze ich jetzt nicht direkt davor, aber die Meldung beginnt so:
  File "<stdin>" ....
  Muss ich meine .py Dateien an einer bestimmten Stelle speichern oder eine andere Syntax zum Aufrufen meiner Programme nutzen?
  Habe bisher alle .py Dateien in einem Unterordner der Eigenen Dateien. Das Betriebssystem ist Windows XP Pro und in die Umgebungsvariabeln habe ich den Pfad zur Python-Installation unter Path angegeben.
  < Live long and prosper >
  Pickaortt
  Python ansich ist ja installiert.
  Du meinst mit dem Aufrufen von der "Konsole" aus (Wie heißt das bei Windows.... na ja dieses DOS-Fenster da bei Ausführen --> cmd).
  Wenn ja dann brauchst du einfach nur den Namen des Programms einzugeben. (Und dem Pfad... mit Navigieren usw... mit cd usw... )
  Wenn nein wüsste ich nicht wie. Außer eben ein Doppelklick auf das Script.
  Mittwoch 9. August 2006, 11:14
  Das mit dem Doppelklick funktionert auch, nur das mir ein "PAUSE"-Befehl allá C++ fehlt um das Ergebnis betrachten zu können, aber das eh nur nebenbei...
  Ich wollte die Programme nicht aus der CMD-Umgebung heraus aufrufen, sonder aus der Shell-GUI, die bei der Python-Installation dabei ist. Wenn ich nämlich ein Programm aus dem Editor heraus mit Strg + F5 starte, wird es dort ausgeführt, schreibt aber leider nicht rein, wie es das Programm aufruft.
  Ich würde halt gerne an der Stelle in der Shell, wo...
  ...steht, irgendwie gerne mein Programm eingeben können, damit es startet, nur weiß ich die Syntax dazu nicht...
  Mittwoch 9. August 2006, 11:23
  geht das nciht einfach mit F5
  Pause à la C++
  Mittwoch 9. August 2006, 11:38
  DatenMetzgerX hat geschrieben: geht das nciht einfach mit F5
  Ja, genauer geht es mit Strg + F5, aber das klappt ja auch. Ich will es doch nur mal durch selber Eintippen und Enter drücken aufrufen...
  Mittwoch 9. August 2006, 11:40
  für was brauchst du das in der IDLE?
  mach das in der Shell / CMD
  Mittwoch 9. August 2006, 11:44
  Meiner Meinung geht das auch gar nicht anders...
  Mittwoch 9. August 2006, 11:53
  so viel ich weiss, unterstuetz der IDLE so was nicht!
  Ipython ist eher für sowas geeignet.
  Wenn du ne Pause beime Doppelklick einer Datei haben willst,
  musst du einfach am Ende deines Codes -
  x=raw_input('mit ENTER oder irgend einer Taste beenden !' )
  Mittwoch 9. August 2006, 12:03
  um dein Script direkt von der Konsole aus zu starten musst du in das entsprechende Verzeichnis in dem dein Script liegt wechseln.
  cd Dokumente und Einstellungen\User\Eigene Dateien\deinOrdner
  python deinScript.py
  Mittwoch 9. August 2006, 12:15
  Pickarott hat geschrieben: Ich wollte die Programme nicht aus der CMD-Umgebung heraus aufrufen, sonder aus der Shell-GUI, die bei der Python-Installation dabei ist.
  Dafuer ist die interaktive Python-Umgebung aber nicht gedacht. Die ist dafuer da, um direkt Python-Befehle einzugeben.
  Mittwoch 9. August 2006, 21:31
  Hi Pickarott,
  Rebecca war wieder schneller und hat wieder recht.
  "Python (command line)" ist ebenso wie IDLE dafür gedacht, einzelne Befehle interaktiv einzugeben.
  Natürlich gibt es auch eine Möglichkeit, Dein Programm aus dem interaktiven Modus heraus auszuführen, nämlich mit:
  execfile(qualifizierterDateiName)
  Dabei besteht "qualifizierterDateiName" aus absolutem oder relativem Pfad + Dateinamen. Nur sich die Datei im aktuellen Verzeichnis befindet, brauchst Du nur den Dateinamen angeben. Das aktuelle Verzeichnis erhältst Du mit:
  Wenn Du nichts geändert hast ist es der Pfad, aus dem Du den interaktiven Interpreter aufgerufen hast.
  Ich würde Dir aber empfehlen, wenn Du das Programm unbedingt aus der Eingabeaufforderung heraus starten musst, die allgemeine Form zu verwenden:
  PfadZumInterpreter\python.exe PfadZurProgrammdatei\Datei
  Noch ein Wort zum Vorschlag von Damaskus:
  Das mag unter UNIX funktionieren, in der MS-DOS Eingabeaufforderung kommt man damit aber nicht weit - jedenfalls in meiner. Da gibt es eine einfache, aber nicht immer eindeutige Regel: Namen mit mehr als 8 Zeichen werden auf 6 Zeichen gekürzt, gefolgt von einer Tilde und einem Index (je nachdem wie viele von solchen Ketten es im gleichen Verzeichnis gibt). Hier also z.B.
  dokume~1\user\eigene~1\...
  kann aber auch jeder andere Index dranhängen, wenn man mehrere eigene~ hat. Ich sehe die UNIX user sich schon auf dem Boden kringeln vor lachen.
  Donnerstag 10. August 2006, 07:54
  Das mag unter UNIX funktionieren, in der MS-DOS Eingabeaufforderung kommt man damit aber nicht weit - jedenfalls in meiner.
  Ich glaube seit Windows NT, gibt es den "CMD" als Kommandozeileninterpreter. Der kann, im Gegensatz zu "COMMAND" mit langen Dateinamen wunderbar umgehen.