Python Programm auf Raspberry kopieren

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo Zusammen,

    Ich habe auf meinem Windows Rechner ein Programm geschrieben, dies Programm läuft auf auch soweit. Nun würde ich es gerne auf den Raspberry pi laden. Ich hoffe das geht mit Putty da der RPI nicht bei mir ist sonder Extern.

    Kann mir jemand erklären wie das geht... sodass ich auch das APP starten kann?

    Ready when you are :bravo2:

  • Mein lieber Scholli!

    Manchmal kommen hier aber auch fragen rein! Wer das Kopieren von ein bisschen Code nicht durch eigene Recherche lernt, der sollte besser Makramee oder Basteln mit Fimo-Knete belegen! :mad_GREEN:

  • Hallo zusammen,
    ich bin neu hier und habe zu diesem Thema auch eine Frage.
    Das Programm das ich geschrieben habe läuft auf meinem Windows - Rechner ohne Probleme. Kopiere ich es aber auf mein Pi (B mit 2 USB und 512MB RAM) läuft es leider nicht mehr.
    Ich habe schon gelesen, das in die erste Programmzeile ein bestimmter Befehl muss, aber auch dann funktioniert es nicht.. Kann mit bitte wer weiterhelfen??

    Hier wären die ersten Programmzeilen:

    root/bin/pyton
    chmd + guy.py
    from tkinter import

    fenster = Tk.....
    .....
    ....
    ....

    Danke schon mal im Voraus für Eure Bemühungen

  • Huhey,

    Poste doch mal die Error Message, die dir der Python Interpreter wirft.
    Am Rande: Das mit tkinter würde ich nochmals überdenken :D

    Gruß;

    Einmal editiert, zuletzt von YellowDream14845 (18. August 2014 um 16:39)


  • Huhey,

    Poste doch mal die Error Message, die dir der Python Interpreter wirft.
    Am Rande: Das mit tkinter würde ich nochmals überdenken :D

    Gruß;

    Warum?? was stimmt da nicht?? wie gesagt, bin neu auf dem Gebiet des Phyton und des Pi´s... man möge mir evtl. Fehler noch verezeihen... Das ist nur ein Beispielprogramm aus einem Tutorial. (2 Buttons, ein Label und ein Eingabefeld - also nix wildes) Programm läuft etz soweit, bin nur am ruprobieren wie die GUI automatisch startet nach dem booten, das bekomme i iwie ned hin.

    Hab auch in div. Threads schon gekuckt - aber ohne Erfolg... die rc.local umgeschrieben, die Datei ausführbar gemacht aber das GUI Fenster erscheint nicht beim/nach dem booten.

    Habt ihr evtl. Vorschläge??:danke_ATDE: :danke_ATDE: :danke_ATDE:

    Hallo bootsmann,

    sorry war ein Rechtschreibfehler... wie oben schon geschrieben, die GUI ist aus einem Tutorial und ich möchte nur probieren sie in den autostart zu bekommen, das die GUI nach dem booten auto. startet.

    leider ohne Erfolg bisher.... aber - ich find die Nadel im Heuhaufen schon noch :) :)

    Einmal editiert, zuletzt von ElektroFlo (18. August 2014 um 17:47)

  • Kurze Lehrstunde zu Linux: Du brauchst eine grafische Oberfläche, um grafische Programme (grafisch = mit Buttons, Labels usw.) zu starten. Dein Programm braucht das ganz sicher, wenn du mit tkinter arbeiten willst.

    Hast du eine grafische Oberfläche installiert?

    Zweitens: WAS hast du in der rc.local reingeschrieben?

    Generell gilt bei solchen Problemen IMMER: Je mehr Infos du uns beim Problem geben kannst, desto eher können wir Rückschlüsse ziehen und den Fehler beheben, ohne zu oft ins Blaue raten zu müssen. Dazu zählen Fehlermeldungen genauso, die werden ja nicht ohne Grund ausgegeben...

    Von WO versuchst du dein Programm zu starten? Von der Konsole aus, oder von einer grafischen Oberfläche?

  • Hallo Astorek86,

    ich habe die GUI mit Python 3.4 (GUI) bzw. Idle programmiert.
    Habe zur besseren Übersicht mal das Programm als Screenshot angehängt. Wie gesagt - es stammt aus einem Tutorial und ist mehr als eine Übung gedacht.

    Welche graphische Oberfläche müsste ich dazu noch installieren?? oder wie kann ich sowas überprüfen??

    Ebenfalls hab ich einen Screenshot von der rc.local gemacht.


    Die GUI sollte halt starten wenn der Pi hochgefahren ist, damit ich hier den Button mit "ich lese" drücken kann. bzw. später sollte meine "richtige" (also die ich noch schreiben werde GUI) nach dem booten starten und in den Vollbildmodus gehen.

    Ich bedanke mich schon mal jetzt für Euere Unterstützung und bitte Euch gleichzeitig um Verzeihung sollte ich Euch mit meinen Fragen belästigen
    Achja hätte ich beinahe vergessen.. ich habe Raspbian als Betriebssystem.

    :danke_ATDE::danke_ATDE::danke_ATDE::danke_ATDE::danke_ATDE::danke_ATDE::danke_ATDE:

    Einmal editiert, zuletzt von ElektroFlo (19. August 2014 um 20:17)

  • Wie ichs mir dachte: Ohne eine grafische Oberfläche kann das Python-Skript nicht einwandfrei arbeiten, weil Tkinter auf einer grafischen Oberfläche "schreiben" möchte.

    Es gibt mehrere Möglichkeiten, das zu lösen:

    • Möglichkeit 1: Du installierst dir einen sog. Window-Manager (sowas wie IceWM, Openbox oder gleich eine vollständige Desktopumgebung wie LXDE) und nutzt dessen Autostart-Möglichkeit, dein Skript auszuführen.
    • Möglichkeit 2: Du startest "pur" in die grafische Oberfläche mit "xinit". Das hat den Vorteil, dass du - außer dem Xserver - nichts installieren brauchst. Nachteil ist dabei, dass das Python-Skript dabei vollständig für alles Grafische zuständig ist. Direkt per "xinit" gestartet hat dein Python-Programm weder eine Titelleiste noch einen Mauszeiger!


    Es kommt drauf an, welche Methode dir lieber ist. Auf alle Fälle brauchst du den sog. Xorg-Server (da du Raspbian nutzt, gehe ich davon aus, dass der automatisch vorinstalliert ist).

    Falls du die zweite Methode wählst, wäre es eine Möglichkeit, das Skript in /etc/rc.local so anzupassen:

    Code
    xinit /usr/bin/python /home/pi/GUI.py
  • Erstmal vielen Dank für die Antwort.

    LXDE ist bereits installiert - Pi startet automatisch in den Desktop-Bereich und wenn ich rechts unten auf den "aus-Button" gehen kommt abmelden von LXDE..

    Die zweite Variante habe ich noch nicht ausprobiert, da ich Mauszeiger brauche um "mein Programm" bedienen zu können...

    An was kann es noch liegen?? Ist das mit Pi so umständlich?? Habe die Datei (Gui.py) in die Windows-Autostart reingepackt um sie auf dem Laptop zu testen - funktioniert einwandfrei... kann doch nicht sein, das es mit Raspbian so umständlich ist oder??

    Danke für Eure Bemühungen, Hilfe und Antworten :danke_ATDE::danke_ATDE::danke_ATDE::danke_ATDE:

  • Du machst die Datei ausführbar, hast aber offensichtlich keinen Shebang angegeben - was bedeutet das die Datei nicht direkt ausgeführt werden kann da nicht festgelegt wurde "wer" den Text verarbeiten soll.

    Es gibt 2 Möglichkeiten ein Script unter Linux zu verarbeiten/auszuführen:

    • Datei direkt an den Interpreter übergeben:
      Code
      python /path/to/file.py

      oder eine Datei mit bash Code:

      Code
      bash /pyth/to/file.sh

      oder ein php Script:

      Code
      php -f /path/to/file.php

      ...usw...

    • Ganz oben in der Datei den sog. Shebang anzugeben, die Datei mit ausführrechten versehen und dann direkt auszuführen:
      Code
      /path/to/file.py

      oder wenn sich die Datei im aktuellen Verzeichnis befindet:

      Code
      ./file.py

    2. ist die gängigste und verbreiteste Form, funktioniert aber wie gesagt nur wenn ganz oben in der Datei der Shebang angegeben ist, also das Programm was den nachfolgenden Text verarbeiten soll.


    Kurze Lehrstunde zu Linux: Du brauchst eine grafische Oberfläche, um grafische Programme (grafisch = mit Buttons, Labels usw.) zu starten. Dein Programm braucht das ganz sicher, wenn du mit tkinter arbeiten willst.

    Jein.
    Genau genommen brauch er das nicht, er kann auch X11 Forwarding nutzen, ohne X11 selber direkt starten zu müssen.


    Zweitens: WAS hast du in der rc.local reingeschrieben?

    Dies verwirrte mich nun ein bisschen.
    Wenn er eine Grafische Oberfläche installieren müsste, dann kann er /etc/rc.local dafür nicht verwenden da /etc/rc.local viel früher ausgeführt wird als eine Grafische Oberfläche verfügbar wäre!

    Also Wenn, dann müsste er einen Autostart der Grafischen Oberfläche verwenden.

    Allerdings verkompliziert sich ein richtiger Tip da Wir nicht wissen was Er eigentlich machen oder erreichen möchte - oder wieso sein python Script automatisch gestartet werden soll und wo er dies letztlich verwenden möchte..... Bevor man also irgendwelche Tip in Richtung /etc/rc.local gibt sollte man lieber erst mal das "WIESO" hinterfragen und auf eine Antwort warten :)

    Generell gilt bei solchen Problemen IMMER: Je mehr Infos du uns beim Problem geben kannst, desto eher können wir Rückschlüsse ziehen und den Fehler beheben, ohne zu oft ins Blaue raten zu müssen. Dazu zählen Fehlermeldungen genauso, die werden ja nicht ohne Grund ausgegeben...

    Von WO versuchst du dein Programm zu starten? Von der Konsole aus, oder von einer grafischen Oberfläche?

    Genau so ;):thumbs1:


    Allerdings verkomplizierst du (Astorek86) es in deinem Post danach leider wieder :(
    Auf dem PI ist bei Raspbian standardmäßig LXDE installiert. Da wir uns hier im RaspberryPI Forum befinden würde ich also mal stark davon ausgehen das er das auch bereits hat.

    Durch eine Forumsuche nach Autostart findet man über den 2.Treffer eine passende Autostart-Methode für LXDE: Automatisches Starten von Scripte / Programme ( Autostart )


    An was kann es noch liegen?? Ist das mit Pi so umständlich?? Habe die Datei (Gui.py) in die Windows-Autostart reingepackt um sie auf dem Laptop zu testen - funktioniert einwandfrei... kann doch nicht sein, das es mit Raspbian so umständlich ist oder??

    Eigentlich ist es auch nicht umständlich, allerdings wirst du auch auf deinem Windows Rechner etwas installiert haben um dein TKinter Programm nutzen zu können... Und das wird in erster Linie python sein und zum zweiten eben die TKinter Bibliothek.
    Ersteres ist unter Raspbian bereits installiert und letzteres müsstest du meines Wissens nach noch nachholen....

    Nun käme es halt darauf an ob du python2 oder python3 verwendest - und nein das ist nicht egal, die sind nämlich leider nicht vollständig komplatibel zueinander.

    Wenn du python2 nutzt wäre das:

    Code
    apt-get install python-tk

    Wenn du python3 nutzt wäre das:

    Code
    apt-get install python3-tk

    Ansonsten siehe oben - oder poste eine Fehlermeldung

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!