Immer stärker wird der Sog, den Python auf mich ausübt. Mittlerweile konnte auch nicht widerstehen, mich für das PythonCamp Cologne anzumelden. Es liegt ja quasi vor der Tür und meine Neugier was Python angeht, ist derzeit sehr groß. Aus einer zunächst privaten Spielerei haben sich mittlerweile sogar berufliche Anwendungszwecke ergeben. Das war so zwar ursprünglich nicht unbedingt geplant,ist aber ehrlich gesagt ziemlich praktisch. Problemstellungen, die unter PHP lediglich zeitintensiv zu lösen werden, lassen sich mitunter in Python mit fünf Zeilen Code bewältigen.
Bei mir entsteht zudem der Eindruck, dass TYPO3 mit Flow und Extbase auf der Basis von PHP etwas geschaffen hat, was bei Python out of the box vorhanden ist — ohne den gesamten Overhead. PHP, so denke ich, ist mittlerweile an Grenzen gestoßen, vielleicht sogar ein Stück weiter überholt als Sprache für moderne Webanwendungen. Ein ähnliches Gefühl hatte ich vor über 15 Jahren, als ich von Perl zu PHP wechselte.
Besonders großen Spaß machte mir Python wohl auch deshalb, weil ich dank Pythonista wirklich überall unterwegs an Skripten basteln kann — nicht nur auf dem iPad, sondern auch auf dem iPhone. Stationär für den Mac habe ich mir keine vollständige IDE installiert (langsam, meistens nicht nativ, zu viel Optionen, die ich nicht nutze), sondern mich für ein kleines aber schickes Programm namens CodeRunner entschieden. Mit einer echten Tastatur ist es zum Teil doch bequemer, längere Programme zu schreiben. Und die Programme laufen dann ja auch unter Pythonista. Meistens, jedenfalls, denn manchmal nutze ich Module, die nicht in der Installation von Pythonista vorhanden sind.
Normalerweise werden unter Python Module mit pip installiert, in der Shell zum Beispiel so: pip install Jinja2
Dabei ist Jinja2 eine Template-Engine, die gerade für mein Zeitungsprojekt sinnvoll ist. Die Installation von zusätzlichen Modulen geht natürlich unter Pyhtonista nicht. Durch das Sandboxing von iOS-Apps ist man zudem ziemlich eingeschränkt. Pfiffige Entwickler sind jedoch auf die Idee gekommen, ein kleines Python-Hilfsprogramm mit dem Namen Pypi (ja ich weiss wie das klingt…) zu schreiben.
Dazu gibt es noch im Pythonista-Forum noch den Beitrag Pypi installer and web server, der auch erklärt, wie man mit dem Script Pakete installiert. Das ist eigentlich recht einfach:
from Pypi import Installer Installer('Jinja2, '2.7.3').install()
Wobei, richtig installiert wird nichts, es werden nur die Bestandteile extrahiert und in einem separaten Ordern zur Verfügung gestellt, die benötigt werden. Durch die offene Struktur von Python wird an allen bekannten Orten bei der Einbindung eines Moduls nach diesem gesucht, so dass auch der Ordner des eigenen Skripts einen Unterordner mit dem eingebunden Modul enthalten kann.
Interessant ist die Art der „Installation“ auch wieder für die großen Systeme, zum Beispiel wenn man auf dem gemieteten Webspace nicht die Rechte hat, zusätzliche Python-Module zu installieren (eigentlich ein Luxus-Problem für mich, da bei mir nicht mal Python läuft). In vielen Fällen reicht statt der echten Installation auch wieder der Ordner mit dem Modul im Verzeichnis der eigenen Applikation.