new article

This commit is contained in:
Marvin Steadfast 2017-11-30 09:25:01 +00:00
parent 235592c2ef
commit 4d6ee86919
2 changed files with 14 additions and 0 deletions

View File

@ -0,0 +1,8 @@
Title: Die Reise zu Jack London
Date: 2017-11-30 10:02
Slug: die-reise-zu-jack-london
Tags: jacklondon, books, documentary
Hier ein kleine Dokumentation zu Jack Londons 100 jährigen Todestag. Das [literaturcafe.de](http://www.literaturcafe.de/video-die-reise-zu-jack-london-auf-spurensuche-im-yukon-kanada/) ist aus diesem Grund seinen Spuren nach Alaska gefolgt.
{% youtube HCoXniwvpaI %}

View File

@ -3,3 +3,9 @@ Date: 2017-11-13 13:57
Slug: python-programme-ausrollen-mit-pex Slug: python-programme-ausrollen-mit-pex
Tags: python, linux Tags: python, linux
Status: draft Status: draft
Python hat mit vielen Vorurteilen zu kämpfen. Es sei langsam, nur komisches Gescripte, entweder zu dynamisch oder nicht dynamisch genug. Ein, zum Teil, verständlicher Vorwurf ist die Schwierigkeit des Ausrollens und Veröffentlichung von Paketen. Dem möchte ich nur zum Teil zustimmen. Als völliger Programmier-Noob tue ich es mir ab und zu wirklich schwer eine gute `setup.py` zu schreiben. Und muss ich dies tun, suche ich mich durch die verschiedensten Auswüchse meiner liebsten Python-Projekte auf GitHub. Was mir da immer hilft ist das [Beispiel Projekt](https://github.com/pypa/sampleproject). Daran kann man sich wunderbar entlang hangeln. Dann steht das nächste Problem an. Wie veröffentliche ich das ganze am besten. Einerseits lädt man es bei [PyPI](https://pypi.org) hoch. Auf der Benutzerseite fragt man sich jedesmal wie man das Paket am besten installieren. Man möchte niemals `pip install` als `root` ausführen und das Paket einfach blind in den globalen Raum installieren. Es gibt `pip install --user foobar`. Dies installiert es zwar global aber nur im eigenen Home-Verzeichnis. Auch nicht so toll und es kann natürlich zu Abhängigkeitesproblemen kommen, so sehr diese Raum mit anderen Paketen wächst und immer mehr verwulstet. Zum entwickeln benutzt man immer `virtualenvs` um sich seine abgeschlossenen Umgebungen zu bauen. Als Anwender ist das auch ziemlich unschön diese zu managen und am Ende verliert man dann doch den Überblich. Es gibt da [pipsi](https://github.com/mitsuhiko/pipsi). Dieses kleine Tool nimmt das Umgebungs-Management in die Hand. Funktioniert ganz wunderbar. Doch noch gibt es ganz andere Problemherde. Was ist mit Abhängigkeiten die ein Kompilieren nötig haben? Immer mehr Sachen müssen installiert werden und am Ende klappt es zwar irgendwie, schön ist es aber nicht. Gerade wenn das Paket von normalen Endnutzern benutzt werden soll.
Neben Tools wie [pyinstaller](http://www.pyinstaller.org/) gibt es, das von Twitter entwickelte, [PEX](https://github.com/pantsbuild/pex). Dies macht sich zu eigen das Python Module aus Zip-Files importieren kann und Python wohl ziemlich vergibt was die Struktur von Zip-Files anbelangt. `pex` bastelt ein `virtualenv`, zippt es und knallt einen [Shebang](https://de.wikipedia.org/wiki/Shebang) vor das Zip. Nun ist es ausführbar und man benötigt nur noch einen passenden Python Interpreter, alles was zum ausführen gebraucht wird, befindet sich in dem Zip. Dies ist ein anderer Ansatz als Python und seine Abhängigkeiten in ein Gesammtpaket zu schnüren. Python wird weiterhin auf dem System gebraucht. `pex` unterstützt sogar mehrere Python Versionen und Plattformen in einem PEX-File.
Ich habe das ganze mal für mein kleines Tool [DoTheBackup](https://github.com/xsteadfastx/DoTheBackup) gemacht.