From 4d6ee86919ddfed170004abb481139f87019e830 Mon Sep 17 00:00:00 2001 From: Marvin Steadfast Date: Thu, 30 Nov 2017 09:25:01 +0000 Subject: [PATCH] new article --- content/posts/die-reise-zu-jack-london.md | 8 ++++++++ content/posts/python-programme-ausrollen-mit-pex.md | 6 ++++++ 2 files changed, 14 insertions(+) create mode 100644 content/posts/die-reise-zu-jack-london.md diff --git a/content/posts/die-reise-zu-jack-london.md b/content/posts/die-reise-zu-jack-london.md new file mode 100644 index 0000000..66e21ee --- /dev/null +++ b/content/posts/die-reise-zu-jack-london.md @@ -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 %} diff --git a/content/posts/python-programme-ausrollen-mit-pex.md b/content/posts/python-programme-ausrollen-mit-pex.md index 185ca9f..48b85cf 100644 --- a/content/posts/python-programme-ausrollen-mit-pex.md +++ b/content/posts/python-programme-ausrollen-mit-pex.md @@ -3,3 +3,9 @@ Date: 2017-11-13 13:57 Slug: python-programme-ausrollen-mit-pex Tags: python, linux 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.