Hier erkläre ich euch, wie ihr mit einfachen Mitteln eine recht nette Entwicklungsumgebung aufbauen könnt, um Skripte in Python, html oder PHP auf dem PC zu editieren und dann vollautomatisch auf den Pi zu übertragen. Natürlich reicht so etwas nicht an professionelle Geschichten wir Eclipse oder so heran, aber dafür ist der Lern- und Installationsaufwand sehr viel geringer.
Das Entwickeln von eigenen Programmen in Python oder PHP oder anderen Sprachen ist direkt auf dem Raspberry Pi etwas mühsam. Auch wenn der Pi einen eigenen Monitor hat und man über die grafische Benutzeroberfläche Programme schreibt (z.B. mit Idle), geht das alles nicht sehr flüssig vonstatten.
In vielen Fällen hat der Raspberry Pi keinen eigenen Monitor und auch keine eigene Tastatur sondern wird headless über SSH und ein Terminalprogramm – z.B. Putty – vom PC aus bedient. Der sich dann anbietende Nano Editor ist etwas altbacken – eigentlich richtig Old School, richtig Entwickeln macht mit der Zeilenorientierung von Nano wenig Spaß. Der vi Editor ist ein von vielen Profis verwendetes, altes Schlachtross aber schwer zu erlernen.
Ein Problem dabei ist, dass man auf dem PC zwar sehr komfortabel schreiben kann, der PC aber meist weder Python noch PHP verarbeiten kann, da der PC halt kein Server ist; der Pi hingegen schon (zumindest dann, wenn ihr einen Webserver mit PHP auf dem Pi installiert). GPIO kann der PC sowieso nicht, also muss alles, was mit GPIO zu tun hat, eh auf dem Pi aufgerufen bzw. getestet werden.
Inhalt
Was braucht man dazu
- Einen Raspberry Pi mit WLAN oder LAN und headless Zugriff über Putty o.ä.
- einen guten Editor, der auf dem PC laufen soll. Ich empfehle Notepad ++ (kost nix)
- ein Programm, dass Verzeichnisse zwischen dem PC und dem Pi synchronisiert. Ich empfehle WINSCP (kost auch nix).
Notepad++ konfigurieren
Da gibts nicht viel zu tun, ist aber trotzdem wichtig, um später keine Probleme zu bekommen.
- Zeilenschaltung: Bei Windows ist das Zeilenende eine Kombination aus <CR> und <LF>, ausgeschrieben Carriage Return und Line Feed (wie bei einer alten Schreibmaschine) oder Chr$(13) Chr$(10). Bei Linux hingegen wird nur ein Line Feed verwendet – auch wenn das im Editor nicht so ohne Weiteres sichtbar ist. Das kann später zu Problemen führen. Siehe diesen Artikel. Also muss das Zeilenende in Notepad ++ wie folgt eingestellt werden:
Im Menü Einstellungen auf "Optionen" gehen und dann bei "neue Dateien" im Feld "Zeilenenden" UNIX auswählen. Als Kodierung UTF-8 ohne BOM auswählen. - Tabulatoren: Warum auch immer, kommt der Python Interpreter durcheinander, wenn Einrückungen gemischt mal mit Tabulatoren gemacht werden und mal mit Leerzeichen. Am besten stellt man den Editor so ein, dass bei Python generell Tabulatoren durch 4 Leerzeichen ersetzt werden: Im Menü Einstellungen auf "Optionen" gehen, dann "Sprache" auswählen, im Feld "Tabulatoren" die Sprache "Python" markieren oder unterhalb davon Tabulatorbreite auf 4 und das Häkchen bei "Durch Leerzeichen ersetzen" machen.
Notepad++ ändert gelegentlich seine Menüs, so fand sich die Tabulatoren Einstellung in einer früheren Version dieses Posts woanders. Obige Anleitung bezieht auf Notepad++ 7.3.3. (Build 8. März 2017) - Wer mit JSON arbeiten will kann sich noch den Hinweis bei meinem Artikel Wetterbericht … mit JSON auslesen … zu Gemüte führen.
WINSCP konfigurieren
Nach dem Start von WinSCP erscheint zuerst ein Anmeldefenster. Dort klickt ihr auf "Neues Verbindungsziel". Als Übertragungsprotokoll wählt ihr SCP aus. In das Feld Rechnername tragt ihr entweder den Namen eures Raspberry Pi (z.B. RaspberryZwei) oder die IP Adresse des Pi in eurem Netzwerk. Gegebenenfalls die Portadresse ändern und dann noch den Benutzernamen und wahlweise Passwort eintragen. Dann den Button "Speichern unter" anklicken und die Sitzung speichern. Optional könnt ihr auch das Passwort mitspeichern. Mit dem "Anmelden" Button wird die Sitzung gestartet.
Dateien synchron halten
Nach dem Start von WinSCP seht ihr zwei explorerähnliche Fenster. Links das vom PC, rechts das vom Pi Homeverzeichnis. Navigiert wird genau so wie beim Windows Dateiexplorer. Dateien werden einfach durch anpacken mit der Maus und verschieben zwischen den Fenstern kopiert.
Erzeugt euch auf dem PC und dem Pi ein Verzeichnis, in dem ihr euer Projekt ablegen wollt.
Mit dem Synchronisieren Button in der Menüzeile oben kann man die Verzeichnisse leicht abgleichen. Über die Checkbox "Änderungszeit" im Synchronisationsdialog wird jeweils die neueste Datei kopiert. Vorsicht bei der Checkbox "Dateien Löschen". Hier kann es passieren, das eine auf dem PC versehentlich gelöschte Datei auch auf dem Pi gelöscht wird, oder umgekehrt, was unter Umständen zum Totalverlust führen kann.
Noch viel besser als das Synchronisieren ist der Button links davon: "Entferntes Verzeichnis aktuell halten". Ist diese Funktion aktiv, wird alles, was ihr in eurem Projektverzeichnis auf dem PC speichert, sofort auf den Pi kopiert. Die Funktion wird über den Startbutton des Dialogs aktiviert.
Jetzt könnt ihr nach Herzenslust mit Notepad++ auf dem PC codieren, jedes Mal, wenn die Datei gespeichert wird, ist sie unmittelbar darauf auf dem Pi wieder zu finden und kann dort ausgeführt werden.
Programme Testen
Nachdem ein Python Skript auf dem Pi gelandet ist, wechselt ihr zu einem Terminalfenster (im headless Betrieb wäre das wahrscheinlich Putty) und startet das Script. Wenns nicht gleich funktioniert, liegt es wahrscheinlich daran, dass ihr es noch nicht lauffähig gemacht habt. Wie das geht, bzw. was dabei zu beachten ist findet ihr in diesem Artikel.
PHP Skripte auf dem Pi ruft ihr über euren Browser am PC auf. Einfach in die Adresszeile die IP Adresse , ggf. den Pfad und den Namen des Skripts eintragen. z.B.
192.168.178.22/prog/test.php
PHP ist ohne richtiges Entwicklungstool etwas mühsam, da wir die Scripte nicht auf korrekte Syntax überprüfen können und der PHP Server auch keine vernünftige Rückmeldung gibt. Im Normalfall bekommt man bei einem Fehler nur ein weißes Browserfenster. Da hilft dann nur in ganz kleinen Schritten vorzugehen und sehr viele echo Statements einzubauen.
Hallo Chris, vielen Dank für Deine schnelle Antwort. Es läuft…
Gruß Heinz
Sehr geehrte Damen und Herren, ich bin Python-Anfänger. Mein Pi läuft mit einfachen Programmen die ich mit nano erstellt habe. Nun möchte ich mit Notepad programme erstellen und auf dem Pi laden. Leider finde ich im Menü Einstellungen nicht "Tabulatoren" um die Breite einstellen zu können. Ich wäre ihnen dankbar, wenn Sie mir weiterhelfen würden.
MfG Heinz Wiemeyer
Hallo Heinz,
erst einmal danke für deine Frage bzw. den damit verbundenen Hinweis, dass meine Anleitung nicht mehr ganz aktuell war. Ich habe das jetzt aktualisiert.
Die Einstellung findest du jetzt unter
Einstellungen-Optionen-Sprache — ganz rechts ist eine Box "Tabulatoren", hier "Default" auswählen, weiter unten "Tabulatorbreite" 4 eintragen und das Häkchen bei "Durch Leerzeichen ersetzen" setzen (oder einfach Python auswählen, dann wird der Rest genau so eingestellt). Der Python Interpreter kommt mit Einrückungen, die mal mit Tabzeichen und mal mit Leetzeichen gemacht werden durcheinander. Deshalb besser generell jeweils 4 Leerzeichen einrücken.
Viel Spaß beim Programmieren.
Gruß
Chris