Hallo Besucher, der Thread wurde 16k mal aufgerufen und enthält 42 Antworten

letzter Beitrag von BladeRunner am

Wie bringt man ein abgespeichertes Python-Programm zum Laufen?

  • Nach einer Woche intensiver Beschäftigung mit Python und dem Raspberry Pi, muss ich jetzt vorläufig das Handtuch werfen. Ich kann den ganzen Tutorials (ca. 6 Stück) im Netz nicht folgen. Nirgends erfahre ich wie man ein eigenes Programm abspeichert und dann später wieder einlädt und laufen lässt. Und wenn jemand es erklärt, dann so, dass ein Laie wie ich es nicht versteht.


    Deshalb: kann mir jemand diesen schwierigen Prozess in einfachen Worten - ohne die ganzen Fachbegriffe - schildern. Ich kriege es sonst nicht hin.


    jomodore

  • Nirgends erfahre ich wie man ein eigenes Programm abspeichert und dann später wieder einlädt und laufen lässt.

    Wie mein Vorposter schon schrieb: Du schreibst dein eigenes Programm in einem Texteditor. Nano wurde schon genannt, geany waere ein anderer. Ich weiss aus dem Kopf nicht welchen Texteditor das Raspbian normalerweise mitbringt.


    Du speichert dein Python-Programm dann in eine Textdatei die auf ".py" endet (musst Du nicht, ist aber Konvention).


    In einer Kommandoshell (heisst beim Raspbian glaube ich "Terminal") kannst Du dann mit "python dateiname.py" das Programm starten. Die Option "-py" die @lommodore erwaehnt kenne ich nicht und habe ich bisher auch nicht gebraucht.
    Du schreibst leider nicht wie fit Du mit Linux/Unix bist, deswegen weiss ich nicht wieviel ich hier erklaeren muss...


    Wie ich mich aus dem anderen Thread meine zu erinnern hast Du CBM-Basic Vorwissen, und ich nehme mal an, das Du jetzt davon ausgehst das Du im Python-Interpreter dein Programm zusammenschreiben kannst und dann abspeichern (so wie im Bildschirmeditor beim C64).
    Das geht hier nicht, die "Python shell" ist eine reine Kommadoshell in der man "per Hand" Code ausfuehren kann.
    Da ist kein "Editor" eingebaut...


    Gruss Ilu

  • Ich benutze RaspberreyPi 3 und Python 3. Die sogenannte SHELL nennt sich anscheinend IDLE. Darin finden sich diese 3 Prompter ">>>". Aber dort kann ich das Programm nicht als Ganzes starten. Immer nur so zeilenweise.


    Das Terminalprogramm (falls es eins ist) heißt anscheinend "LXTerminal". Wenn ich es starte, steht aber im Fensterbalken "pi@raspberrypi: (plus Tilde)". Der Prompter ist ein blaues "$". Ich weiß nicht, wie ich das eigene Programm wieder dorthin laden kann. Es gibt keinen Ladebefehl wie "LOAD" bei BASIC.


    Da lobe ich mir doch das alte BASIC: das war irgendwie Benutzer freundlicher. Da gab es klare Ansagen. Hier bei Python kann man Editoren austauschen, Shells usw. Alles ist vage und jedem selber überlassen. Damit kann ich nicht gut umgehen. Ich weiß nicht mal, wie man ein Programm laufen lässt (RUN). Und vor allem - wo? Warum kann ich nicht im selben Fenster ein Programm starten?


    Aber ich werde versuchen, Eure Tipps nachzuvollziehen. Nach dem ersten Lesen verstehe ich allerdings nicht allzu viel. Alles, was ich hier versuche nachzuahmen, verläuft im Sande. Es ist echt die Härte für einen Laien, der BASIC mal ganz gut konnte und kann.


    Von Linux habe ich keinen Schimmer. Leider.


    jomodore

  • Also gibt es dann doch drei Dinge: "Interpreter, "Shell", "Texteditor".


    Jetzt ist die Verwirrung perfekt.


    HIer mal ein Zitat aus einem Tutorial:


    Lass uns das ausprobieren. Erstelle eine Datei hello.py in deinem aktuellen Verzeichnis mit deinem Lieblingseditor und schreib den print-Befehl von oben. Jetzt speicher die Datei. Unter Linux und OS X kannst du auch touch hello.pyausführen um eine leere Datei zu erstellen. Diese Datei mit Python auszuführen ist ganz einfach:


    Ich verstehe nicht ansatzweise, wovon der redet.


    jomodore

  • Nach dem Start von IDLE erscheint ein Fenster für den "Direktmodus" von Python. Um ein Programm zu schreiben, öffne eine neue Datei über das Menü ("File->New Window", dann dort "File->Save As"). Das Laden, Editieren und Schließen Deiner Python-Programme funktioniert genau so wie Du auch jede andere Datei auf dem PC bearbeitest, egal ob Office-Dokumente oder Fotos oder wasweißich.


    Wenn so ein Dokumentfenster für ein Programm geöffnet ist, kannst Du das Programm mit dem Menüpunkt "Run->Run Module" (oder Druck auf F5) starten. Die Ein/Ausgabe erfolgt dann über das Direktmodus-Fenster.


    EDIT: Shells und LXTerminal etc. vergiss erst mal - komm erst mal mit IDLE klar.

  • Danke, McBacon. Habe ich alles so gemacht. Es kommen immer Syntax-Fehler Meldungen. Und ich sehe den Grund nicht.


    Das führt irgendwie zu nichts. So langsam klettert in mir der Verdacht hoch, dass Python im Verbund mit dem Raspi eine Sackgasse ist. Da kommt man nicht mehr raus. Ich verpulvere hier Zeit im großen Stil. Ich schätze, dass ich bisher rund 40 Stunden mit Lesen von Büchern und Tutorials verbracht habe. Dazu kommt noch die Zeit für das Aufsetzen der Software. Das waren auch einige Stunden. Ergebnis: NULL.


    Ich kann mir nicht vorstellen, dass Python ein Erfolg ist. Wer soll das alles kapieren und auch noch umsetzen? Die Lehrer der Lehrbücher erklären sich selbst das Programm. Aber ich als Schüler verstehe nur Abfahrt und Bahnhof. Dabei habe ich mich in den letzten Jahrzehnten mit BASIC und sogar mit Maschinencode befasst (rudimentär). Aber was hier mit Python abgeht, ist Spezialistenwissen. Man muss im Grunde Informatik studieren, um alle diese hunderte von Begriffen einzuordnen, geschweige sie als Handlungsfaden zu nutzen.


    Ich werfe jetzt erst mal das Handtuch. Ich habe noch andere Projekte im Leben, die wichtiger sind. Python hat eine Chance von mir bekommen. Es war mal wieder nett. Aber das war es jetzt aber mal - für eine Zeit lang.


    War früher alles besser? Nein, nein, nein. Na ja, die Lehrer vielleicht.


    jomodore

  • Mal im Ernst, Python wird weltweit im großen Stil eingesetzt (von zigmillionen von Anwendern), gerade auch von vielen Neulingen der Materie (Stichwort: Scripting). Wenn es so arg kompliziert und eine Unmöglichkeit wäre, glaubst Du das wäre der Fall?


    Ich denke im aktuellen Fall liegt das Problem nicht bei Raspberry oder in der Sprache, sondern es sitzt etwa 30 cm davor.

  • Jommodore: Arbeitest Du normalerweise mit Windows oder MacOS? Versuch doch zuerst auf dem System wo Du Dich auskennst die Python Geschichte zum Laufen zu kriegen, damit Du die Sprache ausprobieren kannst und Dich weniger mit der Umgebung und dem OS auseindersetzen musst.
    Wenn Du dann Erfolg hast und die Sprache kapierst, dann kannst Du Dich auf's Raspi stürzen.


    Ein bisschen muss ich den Vorpostern Recht geben: Wenn Du nur so auf's Alte und damit C64 und BASIC fixiert bist und alles Neue, weil anders, Mist für DIch ist, dann solltest Du auch mal darüber nachdenken ob Programmieren wirklich etwas für Dich ist. Auch BASIC V2 war damals nicht so einfach zu lernen in einem Tag, du hast sicher auch dort viel geflucht. Aber damals waren wir alle jünger und explorativer und vielleicht viele von uns etwas ambitionierter als heute.

  • Naja Du kannst nicht erwarten, dass diejenigen, die diese Tutorials schreiben, diese fuer jemanden auslegen, der direkt von C64 BASIC umsteigt. Dass man Programmcode in Textdateien speichert und nicht im Direktmodus des Interpreters, ist nicht erst seit Python so. Mag sein, dass Du jetzt im speziellen Probleme damit hast, weil Du halt eine sehr festgesetzte Vorgehensweise im Kopf hast, die seit 30 Jahren veraltet ist, aber dadurch drauf zu schliessen, dass Python total schwierig ist, nur fuer studierte Informatiker, niemals erfolgreich sein kann usw, das ist doch schon etwas albern.


    Und wenn Du mit den drei Begriffen "Interpreter, Shell, Texteditor" nicht vertraut bist, dann schlag doch einfach nach, was diese bedeuten. Beim C64 musstest Du damals auch einige Begriffe lernen, davon gehe ich stark aus.


    EDIT: Und Maschinensprache, mit der Du Dich ja auch mal beschaeftigt hast, konntest Du auch nicht so ohne weiteres im C64-BASIC-Direktmodus schreiben und speichern.

  • Klar, das Problem sitzt auch vor dem Schirm. Aber was kann ich dafür, dass ich nicht IT studiert habe. Was ich bei Python und Raspi vermisse, sind diese eindeutigen Anweisungen, die man ausführen soll. Und dann tut das Ding genau das, was da passieren soll.


    Das Wort "Umgebung" trifft es gut. Beim C64 gibt es keine Umgebung. Einschalten. Loslegen. Abspeichern. Reinladen. Abfahren.


    Die Tutorials (viel Falsches steht da auch drin) sind für Fachleute geschrieben. Leider. Ich bekomme dauernd Fehlermeldungen, auch wenn ich Dinge exakt so ein eingebe. Und kapieren tue ich das auch nicht, was ich mache, weil der vermeintliche Lehrer alles Wichtige weglässt, was ich wissen sollte. Das ist Kraut und Rüben. Und die Beispiele, die sie bringen, sind für mich recht ärmlich.


    Ich weiß nicht mal, was ein Skript ist oder ein Terminal oder ein Texteditor oder ... oder .... und wie die zusammenhängen.


    Das müsste einem doch mal erklärt werden, ohne das halbe Netz durchpflügen und lesen zu müssen. Tutorial ist nun mal eine Lehrschrift - keine Leerschrift.


    Ich werde es schaffen - eines Tages. Kann aber noch ein paar Monate dauern. Im Moment bin ich nur abgelöscht.


    jomodore

  • Das Wort "Umgebung" trifft es gut. Beim C64 gibt es keine Umgebung. Einschalten. Loslegen. Abspeichern. Reinladen. Abfahren.

    Das stimmt aber so auch nicht 100%. Wenn Du direkt auf dem C64 in einer Sprache wie C, Pascal oder typischerweise Assembler programmieren willst, musst Du Dich auch mit solchen Dingen wie z.B. Editor, Linker, Compiler auseinandersetzen. Gerade für Assembler gab es x verschiedene Assembler Programme, die ähnlich, aber doch jedes für sich anders zu bedienen waren. Auch da musste man sich reindenken, Handbuch lesen oder Zeitschriftenkurse lesen.
    Das bringt alles aber nix, wenn man nicht ein gewisses Flair für solche Sachen hat. Das hat weniger mit "Fachleute" zu tun. Die 64er Kurse waren auch nicht für "Fachleute" geschrieben.
    Ausserdem musste man damals Vieles eh selbst lernen und schmerzfrei sein und manchmal wieder und wieder was ausprobieren, weil Literatur eher rar war und man nicht den Luxus von heute mit dem Internet und dessen unendlichen Möglichkeiten hatte.


    Ich frage mich, wie Du BASIC V2 gelernt hast, denn auch dort muss man Grundlagen wie Variablen und Typen, Schleifen, Bedingte Verzweigungen usw. verstanden haben, um brauchbare Programme schreiben zu können.
    Das sind aber typische Konstrukte einer jeden Programmiersprache wie in Python, C, VB.NET / C#, Java etc.

  • Mit Verlaub, dann ist das (jetzt) offenbar nichts fuer Dich.
    Du hast eine Woche damit verbracht und:
    - ein Programm nicht ausfuehren koennen?
    - aufgegeben?
    - gibst Python + Raspi die Schuld?


    Jeder einzelne Punkt drueckt fuer sich schon aus, dass das nichts fuer Dich ist.
    Das ist nicht boese gemeint - aber es spricht schon eine deutliche Sprache.
    Jeder kann Millionen Dinge nicht. Ist ja keine Schande - man muss die Schuld dafuer allerdings auch nicht bei anderen suchen.

  • Ich bin beileibe auch kein Profi und habe nichts im IT-Bereich gelernt oder gar studiert, Aber Python ist vergleichsweise einfach, sowohl in der Handhabung als auch und vorallem in dem was Du "Umgebung" nennst. Ich muss mich nicht mit Linkern, Make-Files und was weiss ich rumschlagen. Ich speichere meinen Code und führe ihn aus, fertig. Viel einfacher wird es jenseits des Tastaturcomputers der 80er nicht mehr, und es ist ja auch echt nicht kompliziert.


    Wenn du bereits an diesen Kleinigkeiten scheiterst, lass es wirklich besser sein.
    Allerdings: Wer sich freiwillig Poke-Orgien antut um mit dem C64 über Userport Relais anzusteuern, der sollte auch mit Python zurecht kommen. Wenn er es denn auch wirklich will.


    Ansonsten gäbe es als letzten Anker noch das gute alte Buch.


    Ich hatte zum lernen damals auch noch kein Internet und trotzdem hat es geklappt. Warum sollte das heute nicht mehr funktionieren?

  • Warum gleich so destruktiv? Ich find nicht, dass er es lieber lassen soll. Es fehlen halt noch Grundlagen, die er sich erst aneignen muss. Ich erinnere mich gut an Weihnachten 1984 als ich das Ball Beispiel aus dem Begleitbuch eingegeben habe. Ich sass da bis 4:00 und habe versucht es zum Laufen zu kriegen, aber leider kammen immer Syntax Fehler oder es sah total anders aus als angegeben. Erst am nächsten Tag als ich aufgeben wollte und umblättete hat sich alles aufgelöst. Es war halt nicht wortwörtlich einzugeben und dass es einen anderen Modus beim C64 gibt wenn man das Anführungszeichen verwendet war auch erst mal zu verinnerlichen. Also, nicht aufgeben! Erst versuchen alle Grundlagen zu verstehen. Wenn das Problem zu groß ist teilt man es in Teile auf...

  • Also, nicht aufgeben! Erst versuchen alle Grundlagen zu verstehen. Wenn das Problem zu groß ist teilt man es in Teile auf...

    An sich gebe ich Dir zu so einer Aussage grundsätzlich völlig recht....nur habe ich mal die älteren Threads zu den BASIC V2 und VICE Problemen von Mr. J angeschaut und dort war der Tenor genau gleich.
    Wohlgemerkt: Zu BASIC V2 Fragen wo doch alles so einfach "Einschalten. Loslegen. Abspeichern. Reinladen. Abfahren." ist.

  • darf ich @jomodore ein kleines "einschalt" tutorial geben? ich fange zur zeit auch mit python (nach so 5 jahren) (wieder) an. fangen wir mit dem an, das du python ja schon installiert hast. ist es python 2.x oder 3.x? beide versionen unterscheiden sich sehr.


    deinem texten entnehme ich, das du deine experimente direkt in der python shell, bzw. unter idle - der standart python ide - machst.


    wenn du deine anweisungen nun direkt im ersten sichtbaren fenster von python idle eingibst und diesem speicherst, wird aller sichtbarer text gespeichert. sehen wir uns das einmal an:


    nehmen wir einmal an, du möchtest eine einfache textausgabe machen. in diesem beispiel gebe ich die anweisung print ("test") ein. man sieht dann in etwa diese ausgabe im standart idle fenster:


    Code
    1. Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32
    2. Type "copyright", "credits" or "license()" for more information.
    3. >>> print ("test")
    4. test
    5. >>>

    danach speicherst du dies, per "save" oder "save as" am platz deiner wahl, in diesem beispiel als "test.py" speichern und dir den text mit einem anderen editor ansehen, siehst du das in der datei nicht nur der text print ("test") steht, sondern der gesamte text.


    dies ist evtl. die ursache, das du hier schon ein symtax error gemeldet bekommst!


    drücke einfach strg + n, oder klicke auf "file->new file", um ein neues leeres fenster zu bekommen. lade einfach einmal die vorhin gespeicherte datei hier hinein, oder öffne sie durch klicks auf "open..." und dann den dateinamen. du wirst sehen, das der gesammte sichtbare text im hauptfenster von idle gespeichert wurde. lösche alles, bis auf die vorhin genannten anweisungen, speichere und führe das skript nun aus. du wirst im hauptfenster nun diese ausgabe sehen:


    Code
    1. Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32
    2. Type "copyright", "credits" or "license()" for more information.
    3. >>>
    4. ================= RESTART: C:/Users/Ronny/Documents/test.py =================
    5. test
    6. >>>


    während im zusätzlich geöffnetten fenster dies steht:

    Code
    1. print ("test")


    erweitere nun den text im fenster deines quelltextes, spiele hier damit, speichere deine eingaben und führe sie aus.


    ach ja, am zeitungskiosk deiner wahl findest du evtl. das magazin "python für einsteiger". das ist seit einigen tagen erhältich.


    so und nun will ich ergebnisse von dir sehen :)