Notepad++ für Python anpassen und Python direkt aus Notepad++ ausführen

22.03.2023

Notepad++ ist ein kostenloser Texteditor, der universell als IDE für viele Programmiersprachen genutzt werden kann, um damit Skripte zu erstellen. Er lässt sich speziell für Python anpassen. Zudem lässt sich der Python-Interpreter mit einer Tastenkombination direkt aus Notepad++ aufrufen. Insbesondere wird darauf eingegangen, was alles zu beachten ist, damit auf Windows editierte Python-Skripte auch auf Linux laufen.

Für kleinere Sachen zum Ausprobieren von Python-Code-Schnipseln eignet sich auch https://pythontutor.com/visualize.html#mode=edit. Das Programm funktioniert online. Atom ist eine sehr beliebte Python IDE. Nach der Installation war das Icon für das Aufrufen nicht vorhanden. Das scheint ein häufige Problem zu sein. Deshalb ist mir das schlanke Notepad++ lieber. Es funktioniert.

Notepad++ ist kostenlos und ist unter https://notepad-plus-plus.org/downloads/ per Download erhältlich.

Wenn wir unsere Python-Skripte unter Windows schreiben und auf Linux laufen lassen wollen, dann sind folgende Einstellungen zu beachten:

Codierung auf UTF-8 einstellen
Für den Zeilenumbruch und Wagenvorschub auf Linux unter “Format Zeilenende” “UNIX(LF)” wählen

Erklärung: Carriage Return (CR) und Line Feed (LF) sind Steuerzeichen, die verwendet werden, um das Ende einer Textzeile zu markieren. Das Problem zwischen Windows und Linux besteht darin, dass sie unterschiedliche Konventionen für die Verwendung dieser Steuerzeichen haben.

In Windows-Systemen wird eine Zeilenumbruchsequenz durch die Verwendung von CR gefolgt von LF dargestellt (\r\n), während in Linux-Systemen LF allein (\n) verwendet wird.

Wenn man also eine Textdatei von einem System auf das andere überträgt, kann es zu Problemen kommen, wenn das empfangende System nicht die erwartete Sequenz erhält. Zum Beispiel könnte eine Textdatei, die in Windows erstellt wurde und die CR/LF-Sequenz verwendet, auf einem Linux-System mit einem sichtbaren ^M am Ende jeder Zeile angezeigt werden. Umgekehrt kann eine Textdatei, die in Linux erstellt wurde und nur LF verwendet, auf einem Windows-System mit unerwarteten Zeilenumbrüchen angezeigt werden.

Dieses Problem kann durch die Verwendung von Texteditorprogrammen gelöst werden, die in der Lage sind, die Zeilenumbruchsequenz automatisch an das jeweilige Betriebssystem anzupassen.

Einrücken mit dem Tabulator: Das korrekte Einrücken ist in Python ganz wichtig. Macht man das Einrücken mit dem Tabulator, kann das zu  Fehlinterpretationen führen, die einen in den Wahnsinn treiben, wenn man es nicht weiß. Wir können Notepad++ dazu zwingen, bei der Betätigung der Tabulatortaste 4 Leerzeichen zu setzen.

Wir gehen auf Einstellungen
Dann auf “Sprache” gehen und dann wie im Bild zu sehen den Tabulator dazu zwingen vier Leerzeichen zu setzen.

In Python ist die Verwendung von Tabulatoren zum Einrücken des Codes nicht empfehlenswert, da es zu unerwarteten Fehlern führen kann. Ein häufiges Problem ist, dass in einigen Texteditoren Tabulatoren unterschiedlich interpretiert werden können und die Einrückung dadurch unterschiedlich aussehen kann. Wenn beispielsweise ein Texteditor die Tabulatortaste mit vier Leerzeichen ersetzt, während ein anderer Texteditor die Tabulatortaste als eine Kombination aus Leerzeichen und Tabulatoren interpretiert, kann dies zu unerwarteten Einrückungen führen und den Code unlesbar machen.

Darüber hinaus kann die Verwendung von Tabulatoren zu einem Mix von Leerzeichen und Tabulatoren führen, was zu einer ungleichmäßigen Einrückung führt und ebenfalls zu Fehlern führen kann. Wenn der Code beispielsweise auf einem System mit einer Tabulatorenbreite von 4 eingerückt wurde, aber auf einem System mit einer Tabulatorenbreite von 8 angezeigt wird, kann dies zu einer ungleichmäßigen Einrückung und damit zu einem fehlerhaften Code führen.

Aus diesen Gründen empfiehlt es sich, in Python nur Leerzeichen zum Einrücken des Codes zu verwenden und die Anzahl der Leerzeichen auf 4 festzulegen, um eine konsistente Einrückung des Codes zu gewährleisten.

Damit es bei Ausführen insbesondere unter Linux keine weiteren Probleme gibt, lauten die ersten zwei Zeilen der Python-Skripte wie folgt:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

Die beiden Zeilen am Anfang eines Python-Skripts haben verschiedene Funktionen:

  1. “#!/usr/bin/env python”: Diese Zeile ist bekannt als “Shebang”, und sie gibt an, welches Programm verwendet werden soll, um das Skript auszuführen. In diesem Fall wird das Skript mit dem Systeminterpreter ausgeführt, der im Pfad “env” gefunden wird, und der Name des Programms lautet “python”. Diese Zeile ist nur unter Unix-Systemen relevant und ist optional, wenn das Skript auf einem Windows-System ausgeführt wird.”env” steht für “environment” (Umwelt) und ist ein Befehl, der unter Unix-Systemen verwendet wird, um die Umgebung zu setzen, in der ein Skript oder Programm ausgeführt wird. Wenn “#!/usr/bin/env python” in einem Python-Skript verwendet wird, gibt es dem Betriebssystem an, dass es nach dem Python-Interpreter suchen soll, der in der aktuellen Umgebung verfügbar ist. Das Betriebssystem sucht dann nach dem Python-Interpreter im Pfad, der in der Umgebungsvariable “PATH” definiert ist, und verwendet den ersten gefundenen Interpreter, um das Skript auszuführen.Die Verwendung von “#!/usr/bin/env” anstelle von “#!/usr/bin/python” hat den Vorteil, dass es das Skript portabler macht, da es nicht an eine bestimmte Python-Installation gebunden ist. Es ermöglicht auch die Verwendung von virtuellen Umgebungen oder anderen Python-Installationen, die möglicherweise an anderer Stelle auf dem System installiert sind.
  2. “# –– coding: utf-8 –-“: Diese Zeile gibt das Zeichenkodierungsschema an, das im Skript verwendet wird. In diesem Fall ist es “utf-8”, das eine häufig verwendete Kodierung für Unicode-Text ist. Diese Zeile ist optional, aber es ist eine gute Praxis, sie am Anfang des Skripts zu platzieren, um sicherzustellen, dass die richtige Kodierung verwendet wird, wenn der Code spezielle Zeichen enthält, die möglicherweise nicht in der Standard-Kodierung enthalten sind.

Vor dem ersten Ausführen des Skripts lasse ich unter Linux folgende Befehle ausführen:

sudo dos2unix /usr/share/asterisk/agi-bin/cpu-percent.py
sudo chmod 777 /usr/share/asterisk/agi-bin/cpu-percent.py
sudo python /usr/share/asterisk/agi-bin/cpu-percent.py

Die Pfadangabe und der Name der Python-Datei sind natürlich anzupassen.

Diese drei Linux-Befehle wirken auf die Datei “cpu-percent.py” im Verzeichnis “/usr/share/asterisk/agi-bin”.

  1. “sudo dos2unix /usr/share/asterisk/agi-bin/cpu-percent.py”: Dieser Befehl konvertiert die Datei “cpu-percent.py” von dem DOS/Windows-Format (CRLF) in das Unix-Format (LF). Dieser Schritt ist notwendig, wenn die Datei von einem Windows-System auf das Linux-System übertragen wurde und der Texteditor nicht automatisch die richtige Formatierung verwendet hat.
  2. “sudo chmod 777 /usr/share/asterisk/agi-bin/cpu-percent.py”: Dieser Befehl ändert die Berechtigungen der Datei “cpu-percent.py” auf “777”, was bedeutet, dass die Datei von jedem Benutzer ausgeführt, geändert oder gelöscht werden kann. Es ist jedoch zu beachten, dass das Setzen von Berechtigungen auf “777” ein Sicherheitsrisiko darstellen kann, da jeder Benutzer auf die Datei zugreifen und sie ändern oder löschen kann. Aus Sicherheitsgründen sollte man in der Regel die Berechtigungen nur so weit öffnen, wie es unbedingt erforderlich ist.
  3. “sudo python /usr/share/asterisk/agi-bin/cpu-percent.py”: Dieser Befehl führt die Datei “cpu-percent.py” aus, indem er den Python-Interpreter aufruft und die Datei als Argument übergibt. Dieser Befehl setzt jedoch voraus, dass Python auf dem System installiert ist und dass das Skript mit der richtigen Kodierung und den richtigen Pfadberechtigungen versehen ist. Wenn dies nicht der Fall ist, kann der Befehl eine Fehlermeldung zurückgeben. Bei fast allen Linux-Distributionen ist Python bereits installiert.

dos2unix lässt sich in den meisten Linux-Distributionen wie folgt installieren:

sudo apt update
sudo apt install dos2unix

Python-Skripte unter Windows direkt aus Notepad++ ausführen: Vorher müssen wir den Python-Interpreter installieren, wie das zum Beispiel unter https://www.python-lernen.de/python-installieren.htm erklärt ist. Wie dort auf dem Bild zu sehen ist, ist es ganz ganz ganz wichtig, das Häkchen bei “Add Python 3.xx to Path” zu setzen.

Nach korrekter Installation von Python, können wir Notpad++ einrichten wie nachfolgend in den Screenshots zu sehen ist.

Wir gehen auf “Ausführen” und dann “Externes Programm ausführen ….”
Hier tragen wir ein python -i “$(FULL_CURRENT_PATH)” und dann auf “Speichern …” klicken.
python -i "$(FULL_CURRENT_PATH)"

Der Befehl “python -i” wird verwendet, um die Python-Interaktive Shell zu öffnen. Die Option “-i” steht für “interactive”, was bedeutet, dass die Python-Shell im Interaktionsmodus ausgeführt wird. Dies ermöglicht es dem Benutzer, Python-Code schrittweise auszuführen und die Ausgabe in Echtzeit zu sehen.

Die Zeichenfolge “$(FULL_CURRENT_PATH)” gibt den vollständigen Pfad der aktuellen Datei an, die mit dem Befehl ausgeführt werden soll. Wenn der Befehl also in der Befehlszeile eingegeben wird und die Datei “test.py” im aktuellen Verzeichnis liegt, würde die Zeichenfolge “$(FULL_CURRENT_PATH)” durch den vollständigen Pfad zur Datei “test.py” ersetzt werden.

Zusammengefasst öffnet der Befehl “python -i “$(FULL_CURRENT_PATH)”” die Python-Interaktive Shell und führt den Code in der aktuellen Datei aus, wodurch der Benutzer in der Lage ist, mit dem Code zu interagieren und seine Ausgabe in Echtzeit zu sehen.

Den obigen DOS-Befehl tragen wir ein. Anschließend müssen wir noch eine Tastenkombination auswählen:

Hier trage ich nach der Vergabe eines Namens die Tastenkombination Steuerung + Alt + P ein, weil sie noch frei war und keine Konflikte erzeugte.
Den Tastenkombination lässt sich später immer noch ändern, wie im Bild zu sehen ist.
Tastenkombination ändern, falls erwünscht oder zur Kontrolle nachschauen.

Mit Strg + Alt + P können wir jetzt Python-Skripte direkt aus Notepad++ ausführen:

Mit der Tastenkombination öffnet sich ein Fenster für die Ausführung des Skripts

Ähnliches Thema:

Mit dem FTP-Client FileZilla gelingt von Windows aus der Zugriff auf Raspberry-Dateien. Der Raspberry kann das von Haus aus.
Von Windows auf den Raspberry Pi zugreifen – 5.12.2021: Auf meinem Raspberry Pi betreibe ich einen kleinen SIP-Server mit Asterisk. Von Windows 10 aus möchte ich direkten Zugriff auf die Asterisk-Konsole und auf die Kommandozeilenebene (CLI) des Raspbian haben. Außerdem möchte ich zur Datensicherung und zu Konfigurationszwecken die Konfigurationsdateien von Windows aus sichern und verändern können. Dies erspart einen zweiten Bildschirm. – weiter

Nützliche Icons für Python auf meinem Desktop
Wie ich mir Python beibringe: – 13.2.2023 (aktualisiert am 13.3.2023): Um sich in Python einzuarbeiten, entsteht hier ein chronologisch geordnete Sammlung an Python-Skripten zum Üben. Es dient mir auch als Gedankenstütze. Bei dieser Gelegenheit möchte ich verraten, wie ich meine Lernumgebung eingerichtet habe und welcher Lernstil mir am besten liegt. – weiter