Frage zum Starten von Programmen mit IDLE

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
Pickarott
User
Beiträge: 5
Registriert: Mittwoch 9. August 2006, 10:30

Mittwoch 9. August 2006, 10:39

Hallo Gemeinde

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:

Code: Alles auswählen

$ 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>" ....

Meine Frage ist also:
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
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Mittwoch 9. August 2006, 10:57

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.


MfG ChrissiG
Pickarott
User
Beiträge: 5
Registriert: Mittwoch 9. August 2006, 10:30

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... :(
< Live long and prosper >

Pickaortt
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Mittwoch 9. August 2006, 11:23

geht das nciht einfach mit F5

Pause à la C++

Code: Alles auswählen

import os
os.system("PAUSE")
Pickarott
User
Beiträge: 5
Registriert: Mittwoch 9. August 2006, 10:30

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...
< Live long and prosper >

Pickaortt
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Mittwoch 9. August 2006, 11:40

für was brauchst du das in der IDLE?

mach das in der Shell / CMD
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Mittwoch 9. August 2006, 11:44

Meiner Meinung geht das auch gar nicht anders...

MfG ChrissiG
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Mittwoch 9. August 2006, 11:53

Hallo,

so viel ich weiss, unterstuetz der IDLE so was nicht!
Ipython ist eher für sowas geeignet.
http://ipython.scipy.org/

Wenn du ne Pause beime Doppelklick einer Datei haben willst,
musst du einfach am Ende deines Codes -

Code: Alles auswählen

x=raw_input('mit ENTER oder irgend einer Taste beenden !' )
eingeben
Benutzeravatar
Damaskus
Administrator
Beiträge: 919
Registriert: Sonntag 6. März 2005, 20:08
Wohnort: Schwabenländle

Mittwoch 9. August 2006, 12:03

Hi,
um dein Script direkt von der Konsole aus zu starten musst du in das entsprechende Verzeichnis in dem dein Script liegt wechseln.

Also z.B. so

Code: Alles auswählen

 cd Dokumente und Einstellungen\User\Eigene Dateien\deinOrdner
und dann einfach

Code: Alles auswählen

 python deinScript.py
eintippen.

Gruß
Damaskus
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

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.
Benutzeravatar
Michael Schneider
User
Beiträge: 567
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

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:

Code: Alles auswählen

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:

Code: Alles auswählen

import os
print os.getcwd()
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:
cd Dokumente und Einstellungen\User\Eigene Dateien\deinOrdner
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. :lol:

Grüße,
der Michel
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 10. August 2006, 07:54

Michael Schneider hat geschrieben:
cd Dokumente und Einstellungen\User\Eigene Dateien\deinOrdner
Das mag unter UNIX funktionieren, in der MS-DOS Eingabeaufforderung kommt man damit aber nicht weit - jedenfalls in meiner.
Hi Michael!

Ich glaube seit Windows NT, gibt es den "CMD" als Kommandozeileninterpreter. Der kann, im Gegensatz zu "COMMAND" mit langen Dateinamen wunderbar umgehen.

Code: Alles auswählen

Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.
C:\Dokumente und Einstellungen\Gerold>cd \
C:\>cd Dokumente und Einstellungen
C:\Dokumente und Einstellungen>
lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Michael Schneider
User
Beiträge: 567
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

Donnerstag 10. August 2006, 08:40

Hi Gerold,

wirklich? Und ich quäl mich mit command um... *kopfschüttel*

Danke für den Hinweis, werde ich mal ausprobieren. Nichts desto trotz lobe ich mir mein Python. :-)

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Antworten