Python-Entwicklung mit Atom

Der Editor Atom vom GitHub lässt sich durch eine Vielzahl von Plugins für unterschiedlichste Projekte nutzen. Ich stelle in diesem Beitrag vor, wie man einfache Python-Scripte mit Atom entwickelt.

Atom basiert auf dem Electron Framework, mit dem man Apps mit Hilfe von JavaScript, HTML und CSS entwickeln kann. Electron nutzt den Browser Chromium und Node.js. Neben Atom basieren z.B. auch Microsofts Visual Studio Code und WhatsApp auf Electron (Quelle).

Ein Bash-Script in Atom Ein Bash-Script in Atom. Diverse Plugins (minimap, project-viewer und file-icons) sind zu sehen.

Atom herunterladen und installieren

Atom wird von GitHub entwickelt und kann von der Website https://atom.io/ heruntergeladen werden. Es existieren Versionen für verschiedene Betriebssysteme. Da ich Atom unter Debian verwende, entscheide ich mich für die .deb-Datei. Der Befehl sudo dpkg -i atom-amd64.deb installiert die heruntergeladene Version. Auf anderen Plattformen (ich habe ansonsten Ubuntu und Windows 7 ausprobiert) sollte die Installation ähnlich einfach erfolgen.

Plugins installieren

Bevor ich spezielle Plugins für die Python-Entwicklung vorstelle, möchte ich die allgemeine Vorgehensweise beim Installieren von Plugins erklären. Hat man Atom gestartet, erreicht man mit der Tastenkombination [Strg]+[Shif]+[P] die Command Palette. Dort tippt man install P ein und wählt mit [Enter] den Eintrag Settings View: Install Packages and Themes aus. Mit Hilfe des Suchfeldes kann man Plugins suchen und installieren. Selber bevorzuge ich die Nutzung der Kommandozeile. Mit apm steht nach der Installation der Atom Package Manager zur Verfügung. Mit apm install <Paketname> installiert man ein Paket. Pakete kann man komfortabel über die Website https://atom.io/packages finden.

Basis-Plugins

Ich möchte noch ein paar Plugins vorstellen, die nicht explizit für die Python-Entwicklung gedacht sind, die dennoch sehr nützlich sein können:

  1. atom-beautify -- Hilft dabei eine einheitliche Formatierung von Quellcode umzusetzten.
  2. atom-runner -- Mit der Tastenkombination [Alt]+[R] führt man Scripte direkt aus.
  3. file-icons -- In der Baumansicht erhält jeder Dateityp ein eigenes Icon. Besonders bei Web-Projekten findet man dadurch schneller die gesuchte Datei.
  4. git-plus -- Zugriff auf die wichtigsten Git-Funktionen über die Command Palette ([Strg]+[Shift]+[P]).
  5. git-time-machine -- Visualisierung der Git-History einer Datei und einfacher Zugriff auf die Diff-Ansicht.
  6. minimap -- Zeigt eine Vorschau der Datei und die aktuelle Position. Mit Hilfe von Plugins lassen sich zusätzliche Informationen anzeigen.
  7. project-viewer -- Mit Hilfe einer Seitenleiste lassen sich Projekte (Order) sehr effizient verwalten. Das Plugin merkt sich zu jedem Projekt auch die geöffneten Dateien.
  8. terminal-plus -- Integriert ein Terminal-Fenster in Atom.
  9. linter -- Bietet eine Basis für Linter zu diversen Programmiersprachen. Es existiert eine Übersichtsseiter, auf der alle unterstützten Linter aufgeführt sind.
  10. linter-spell -- Die fehlende Unterstützung für eine deutsche Rechtschreibkorrektur lässt sich mit diesem Plugin nachrüsten. Man muss zusätzlich hunspell (alternativ: aspell) installieren, damit die Korrektur funktioniert.

Alle Plugins lassen sich mit dem Befehl

apm install atom-beautify atom-runner file-icons git-plus git-time-machine minimap project-viewer terminal-plus linter linter-spell

leicht installieren.

Atom fit für Python machen

Mit den bisher installierten Plugins kann man direkt anfangen in Python zu programmieren. Dank terminal-plus lassen sich die erstellten Scripte direkt aus Atom heraus ausführen. Besitzt das Script eine Shebang, so genügt die Tastenkombination [Alt]+[R] und atom-runner führt es aus. Noch mehr Komfort bieten Plugins, welche spezielle Funktionen für das Entwickeln mit Python bieten:

  1. autocomplete-python -- Das Plugin macht Vorschläge für die Ergänzung von Schlüsselwörtern und Funktionen. Dabei wird auch der Docstring des gewählten Vorschlages angezeigt.
  2. linter-pylint -- Atom-linter führt 6 linter-Plugins für Python auf. Mit gefällt linter-pylint am besten. Stellt man in den Optionen für Executable %p/bin/pylint ein, so wird das im Virtual Environment installierte pylint verwendet (praktisch, falls man Projekte mit unterschiedlichen Python-Versionen nutzt).
  3. python-tools -- Ein paar Tools, die beim Refactoring und dem Inspiziere von Code helfen.
  4. python-indent -- Mit diesem Plugin werden mehrzeilige Funktionsaufrufe passend eingerückt.

Es existieren noch viele weitere Plugins für die Python-Entwicklung. Mit den hier aufgeführten Plugins hat man dennoch ein gutes Grundgerüst, um effizient in Python zu programmieren. Für ein paar Scripte, die selbst geschriebene Module nutzen, reicht Atom vollkommen aus. Für ein größeres Projekt bevorzuge ich jedoch eine richtige Entwicklungsumgebung, die direkt alle wichtigen Funktionen mitbringt.

Ein Python-Script in Atom Ein Python-Script in Atom. Mit Hilfe von atom-runner wurde dieses ausgeführt. Die Ausgabe ist auf der rechten Seite zu sehen. linter-pylint konnte zwei Fehler entdecken, die ich absichtlich in das Script eingefügt habe.

Weitere interessante Plugins

Die folgenden Plugins habe ich noch nicht ausprobiert. Ich liste sie trotzdem auf, da die Funktionen sehr interessant sind.

  1. jupyter-notebook -- Das Plugin integriert Jupyter-notebook (früher IPython-notebook) in Atom. Da Atom auf einem Browser basiert, ist es nicht überaschend, dass ein solches Plugin existiert.
  2. hydrogen -- Auch diese Plugin nutzt Jupyter. Diesmal wird nicht das Notebook selbst angezeigt, sondern die Ausgabe von Jupyter wird direkt in den Editor integriert.
  3. python-nosetests -- Möchte man Unit-Test mit Atom ausführen, so bietet sich dieses Plugin an. Noch gibt es nur wenige Test-Plugins für Python, von denen python-nosetests das mit den meisten Downloads ist.