Python in Android
Anleitung: Python-Skripte unter Android entwickeln und ausführen
Python läuft auf Android-Smartphones ziemlich gut. Mit den hier vorgestellten Tools starten Sie auf ihrem Androiden vorhandene Skripte oder entwickeln neue.

(Bild: Albert Hulm)
Python auf dem Android-Smartphone oder -Tablet zu installieren, könnte so einfach sein: Google Play öffnen, nach "Python" suchen und die erstbeste Python-App mit guten Bewertungen installieren. Doch unser Artikel ist hier noch nicht zu Ende, sondern fängt gerade erst an.
Es gibt zwar diverse Python-Apps im Store, jedoch keine offizielle der Python Software Foundation. Sie stammen allesamt von Dritten, die auf der Python-Welle mitschwimmen wollen. Die meisten Apps sind mit In-App-Käufen oder Werbung gespickt. Man hat also die Wahl, ob man mit Geld oder Daten bezahlt. Zudem entdeckten wir auf Anhieb keine App, die eine aktuelle Python-Version mitbringt.
Alles in allem keine erfreuliche Situation – doch es geht besser: Sie können die Sache einfach selbst in die Hand nehmen und ein aktuelles Python-Paket auf dem Linux-Unterbau von Android installieren. Dieser Artikel erklärt, wie das geht. Außerdem liefert er Tipps, wie Sie Ihre Skripte möglichst komfortabel auf dem Smartphone oder Tablet bearbeiten. Dank Syntaxhervorhebung und Codevervollständigung geht das Coden fast so leicht wie am Rechner von der Hand.
Um Python zu installieren, benötigen Sie die Open-Source-App Termux, die wir bereits im Artikel "Termux: Ein Mini-Linux für Android-Geräte" ausführlich beschrieben haben. Termux ist im Prinzip ein Terminalemulator, mit dem Sie Befehle auf dem Linux-Unterbau von Android ausführen können. Solche Apps gibt es viele, doch Termux bietet einen interessanten Mehrwert: Es bringt Portierungen einiger Linux-Standardtools wie bash, curl, grep, less und sed mit, die Android fehlen. Deshalb funktionieren viele aus der Linux-Welt bekannten Befehle und es fühlt sich so an, als würden Sie mit einer gängigen Linux-Distribution wie Debian arbeiten.
- Python-Skripte können Sie auch unter Android ausführen und entwickeln.
- Eine aktuelle Python-Version installieren Sie am besten mit Termux.
- Ein Code-Editor und eine alternative Tastatur erleichtern die Eingabe von Quellcode.
Da es sich nicht um einen ressourcenhungrigen Linux-Emulator handelt, werden alle Befehle ohne Virtualisierung und entsprechend flott ausgeführt. Das Sahnehäubchen ist, dass Sie viele weitere Software-Pakete aus dem Termux-Repository nachinstallieren können, die eigens portiert wurden – darunter auch die aktuelle Python-3-Version.
Termux und Python installieren
Termux läuft auf Android-Geräten ab Version 7, Modifikationen am System (etwa Root-Zugriff) sind nicht nötig. Sie bekommen die aktuelle Termux-Version (Download) im F-Droid-Store, in dem sich ausschließlich Open-Source-Apps tummeln. Sie können Termux auch als APK-Datei von der F-Droid-Website ziehen, wir empfehlen jedoch, zunächst die F-Droid-App zu installieren und damit im Anschluss Termux, da sich F-Droid auch um App-Updates kümmert und wir noch weitere Apps aus dem Open-Source-Store in diesem Artikel vorstellen. Abstand nehmen sollten Sie von der Termux-Version aus dem Google Play Store, da diese von den Entwicklern nicht mehr gepflegt wird.
Nach dem ersten Start von Termux begrüßt Sie die bash mit einigen nützlichen Links und grundlegenden Hinweisen zur Nutzung des Paketmanagers. Demnach suchen Sie mit pkg search suchbegriff
nach Linux-Paketen und installieren diese mit pkg install paketname
. Zunächst sollten Sie die vorinstallierten Bootstrap-Pakete mit pkg upgrade
auf den aktuellen Stand bringen. Falls neuere Versionen als die vorhandenen angeboten werden, müssen Sie deren Installation noch mit Y wie "Yes" zustimmen. Anschließend können Sie auch schon Python installieren, das mit allen Abhängigkeiten etwas über 400 MByte belegt: pkg install python
Wenn Sie jetzt python
eintippen, landen Sie auf der Python-Shell und mit exit()
oder Strg+D kommen Sie da wieder raus. Die Strg-Taste finden Sie als CTRL neben ALT und weiteren Tasten in der Leiste oberhalb Ihrer Bildschirmtastatur, das D geben Sie wie gewohnt ein. Über diese Leiste können Sie unter anderem auch Tabulator und die Pfeiltasten eingeben, was den Umgang mit der Shell deutlich erleichtert: Tabulator vervollständigt den Befehl, den Sie gerade eingeben und der Pfeil nach oben holt den letzten Befehl erneut hervor. Falls Sie mal mehr als ein Terminal brauchen, können Sie vom linken Bildschirmrand nach rechts ziehen, um Sitzungen zu starten und zu beenden.
Nicht nur Python ist jetzt am Start, sondern auch der Paketmanager pip, über den Sie Hunderttausende Python-Module aus dem Python Package Index installieren können. Mit dem folgenden Befehl bringen Sie pip auf den aktuellen Stand: pip install --upgrade pip
Speicherort für Skripte
Jetzt fehlen nur noch Ihre Skripte. Termux startet im home-Verzeichnis/data/data/com.termux/files/home. Prinzipiell wäre das ein guter Speicherort für Python-Skripte, allerdings ist dieses Verzeichnis aufgrund der Restriktionen von Android nur innerhalb der Termux-App erreichbar. Sie können die Skripte dort zwar mit Python starten, aber nicht ohne Weiteres mit einem externen Editor bearbeiten oder per USB auf den Rechner übertragen. Deshalb ist es ratsam, an einem allgemein zugänglichen Ort des Android-Dateisystems zu arbeiten unterhalb von /storage/emulated/0. Dafür müssen Sie Termux zunächst Zugriff darauf gewähren. Geben Sie hierzu termux-setup-storage
ein und bestätigen Sie anschließend den Berechtigungsdialog von Android.
Jetzt können Sie mit cd /storage/emulated/0
an den gewünschten Ort springen. Erstellen Sie dort mit mkdir python
einen neuen Ordner und Sie werden feststellen, dass dieser im Android-Dateiexplorer Ihrer Wahl auftaucht und auch über andere Android-Apps erreichbar ist. Falls Sie erstmal bereits vorhandene Skripte ausprobieren möchten, können Sie diese dort hineinkopieren und mit python skript.py
ausführen. Im einfachsten Fall übertragen Sie die Skripte per USB vom Rechner, Ihnen stehen aber auch alle anderen Transportwege von Android und Linux offen: Wenn Sie zum Beispiel das Paket "git" mit pkg nachrüsten, können Sie mit git clone
beliebige Git-Repositories aufs Smartphone schaffen.
Fehlende Python-Module rüsten Sie über pip install paketname
nach. Gibt es eine Konfigurationsdatei (requirements.txt) zu dem Skript, welche die benötigten Module vorgibt, können Sie die mit pip -r requirements.txt
in pip speisen und die Module automatisch installieren lassen.
Programmieren mit Acode
Prinzipiell genügt ein beliebiger Texteditor, um Python-Skripte auf dem Android-Smartphone zu erstellen und zu bearbeiten. Doch komfortabel klappt es erst mit einem auf diesen Zweck zugeschnittenen Code-Editor. Auf dem Desktop erfreut sich das mächtige Visual Studio Code (VS Code) großer Beliebtheit, doch das gibt es nicht für Android. Hier springt Acode in die Bresche: Die Open-Source-App ist optisch ähnlich aufgebaut und bringt die wichtigsten Komfortfunktionen wie Syntaxhervorhebung, Codevervollständigung und automatisches Speichern mit.
Auch Acode (Download) beziehen Sie am besten aus dem F-Droid-Store, mit dem Sie nach der Installation von Termux bereits vertraut sind. Beim ersten Start der App müssen Sie ihr Zugriff aufs Dateisystem gewähren. Anschließend können Sie Ihr Skript-Verzeichnis in den integrierten Datei-Browser laden, indem Sie auf den Knopf oben links (Burger-Menü, drei Linien) und "Ordner öffnen" drücken. Nun können Sie über den Button bequem auf den Inhalt des Ordners zugreifen.
Über den Menüknopf oben rechts (drei Punkte) können Sie unter anderem neue Dateien erstellen und die Einstellungen öffnen. Über letztere können Sie zum Beispiel die Schriftgröße einstellen sowie Sprache und Farben der Oberfläche. Der Stift in der oberen Menüleiste führt Sie zu den Dateieigenschaften; weitere Funktionen finden Sie in der Leiste am unteren Bildschirmrand: Der …-Knopf öffnet die Befehlszeile, in die Sie viele Programmfunktionen per Texteingabe aufrufen können, ähnlich wie in VS Code. Zudem gibt es dort etwa einen Tabulator-Knopf, "Rückgängig machen", "Suchen/Ersetzen" und "Speichern".
Damit kennen Sie die wichtigsten Funktionen, denn der Rest erklärt sich von selbst. Sie können jetzt mit dem Programmieren beginnen. Doch vorher noch ein Tipp zur Texteingabe: Wenn Sie Ihre gewohnte Bildschirmtastatur nutzen, dann könnte sich leicht Frust aufbauen, denn virtuelle Tastaturen wie das Gboard sind üblicherweise voll und ganz auf die Eingabe natürlicher Sprache ausgelegt und versuchen Ihre Eingaben durch Wortvorschläge zu korrigieren. Das ist beim Coden eher lästig als hilfreich.
Greifen Sie besser zum Hacker’s Keyboard (Download), das Sie kostenlos über F-Droid oder den Google Play Store installieren können. Es bietet alle wichtigen Tasten einer Standardtastatur einschließlich der Pfeiltasten, Tabulator, Strg und Alt. Über eine konfigurierbare Eingabeleiste oberhalb der Tastatur können Sie wichtige Sonderzeichen ohne Fingerverrenkungen eingeben und die Wortkorrektur ist standardmäßig abgeschaltet. Ein zweimaliges Tippen auf die Shift-Taste aktiviert die Feststelltaste (Caps Lock).
Für längere Sessions empfiehlt sich der Einsatz einer echten Tastatur, die Sie zum Beispiel über Bluetooth oder USB anschließen können. Damit geht nicht nur die Codeeingabe leichter von der Hand, auch die zahlreichen Tastaturkürzel von Acode können Sie bequem nutzen. Bei Bedarf passen Sie die Kürzel über die Einstellungen und "Andere Einstellungen/Tasten-Bindung" beliebig an.
Erweiterungen
Sie führen Ihre Skripte mit dem Befehl python skript.py
aus. Eine Abkürzung über den Code-Editor gibt es leider nicht, Sie müssen also zunächst in die Termux-App wechseln, um Ihre Änderungen auszuprobieren. Sie können sich das Herumspringen jedoch mit der Termux-Erweiterung "Termux:Float" ersparen: Diese startet Termux in einem frei skalierbaren Fensterchen, das Sie beliebig über den Bildschirm schieben können. Es bleibt immer im Vordergrund und ist so parallel mit Acode nutzbar. Wenn Sie es gerade nicht benötigen, können Sie über den Knopf oben links zu einer Bubble minimieren, ähnlich wie die Chat Heads beim Facebook Messenger. Mit der Erweiterung "Termux:Widget" können Sie darüber hinaus Verknüpfungen zu Befehlen (wie python skript.py
) als Widget auf dem Homescreen legen.
Weitere Möglichkeiten ergeben sich mit der Automatisierungs-App Tasker. Wenn Sie "Termux:Tasker" installieren, können Sie beliebige Termux-Befehle aus Tasker-Aufgaben absetzen. Damit können Sie beispielsweise Python-Skripte ausführen lassen, wenn bestimmte Geräteereignisse eintreten. Weitere Termux-Erweiterungen finden Sie im Wiki.
Grenzen
Bei unseren Versuchen lief Python in Kombination mit Termux erfreulich rund, wir sind nur selten auf Einschränkungen gestoßen. Eine davon betrifft virtuelle Umgebungen. Solche Umgebungen sorgen unter anderem dafür, dass sich Python-Module nicht gegenseitig in die Quere kommen: Erstellt man eine virtuelle Umgebung für ein Skript und rüstet anschließend die benötigten Module nach, sind diese nur innerhalb dieser Umgebung installiert. Python bringt dafür das venv-Modul mit, das wir jedoch nur im Home-Verzeichnis von Termux nutzen konnten. Unser Versuch, eine venv-Umgebung unterhalb von /storage/emulated/0 einzurichten, schlug mit einem "Access Denied" fehl. Laut einem der Termux-Entwickler ist hierfür eine Einschränkung von Android verantwortlich. Es gibt aber auch eine gute Nachricht: Das modernere pipenv, welches den Umgang mit virtuellen Umgebungen vereinfacht, funktioniert tadellos.
Bei der Installation von Python-Modulen können Sie auf ein weiteres Problem stoßen: Manche sind plattformspezifisch (etwa x86/64) und werden im Python Package Index (PyPI) nicht für die ARM-Architektur angeboten, die Ihr Android-Gerät höchstwahrscheinlich nutzt (linux_aarch64). In solchen Fällen scheitert die Installation über pip mit "No matching distribution found". Dann können Sie im Netz nach einem geeigneten Binärpaket Ausschau halten, denn oftmals hat sich schon jemand die Arbeit gemacht, den Quellcode für ARM zu kompilieren.
Werden Sie nicht fündig, können Sie versuchen, den Quellcode selbst passend zu kompilieren. Bei unseren Versuchen sind wir jedoch nur selten auf Fälle gestoßen, in denen dies nötig gewesen wäre. Gelegentlich steckt in den Installationspaketen (Wheels) Quellcode, der im Rahmen der Installation automatisch auf dem System passend kompiliert wird. Das klappte bei uns mit Termux problemlos.
Termux unterstützt grundsätzlich auch Anwendungen mit grafischer Ausgabe durch das X Window System (X11). Dadurch können Sie Python-Skripte und Linux-Tools nutzen, die eine GUI zeichnen. Um die Bildschirmausgaben sichtbar zu machen, müssen Sie allerdings ein wenig basteln und etwa den X-Server "XServer XSDL" (Download Google Play) installieren. Alternativ können Sie den VNC-Server tigervnc mit Termux installieren und mit einem beliebigen VNC-Client darauf zugreifen. Die Details zur Einrichtung finden Sie im Termux-Wiki.
Wir konnten sogar die Desktopumgebung Xfce installieren und nutzen, die Bedienung davon ist auf einem kleinen Smartphone-Display allerdings fummelig. Um Ihre Python-Skripte um eine grafische Oberfläche zu erweitern, bietet sich das GUI-Toolkit Tkinter an, das Sie in Termux mit pkg install python-tkinter
nachrüsten.
No Comments