Automate the Boring Stuff with Python: Zweite Auflage

Am 29. Oktober 2019 ist die zweite Auflage des englischen Buches Automate the Boring Stuff with Python erschienen. Autor Al Sweigart macht es online kostenlos unter der Creative Commons License verfügbar. Auf no starch press bzw. Amazon gibt es die Druckversion. Wenn das Buch auch manchen Entwickler-Veteranen nicht vollständig überzeugen wird, bietet es dem Programmier- bzw. Python-Neuling eine gute Einführung in die Programmierung und Automatisierung von Routine-Aufgaben.

Cover, Quelle: https://automatetheboringstuff.com/

Das Buch beginnt mit einer Einführung in die grundlegenden Konzepte der Programmierung anhand von Python. Meines Erachtens ist dieser Teil anhand zahlreicher Beispiele auch für Anfänger einfach nachvollziehbar. Erfahrene mögen hier eher schneller drüber hinweg gehen bzw. fliegen.

Interessanter finde ich den zweiten Teil. In diesem wird anhand zahlreicher Beispiele das Automatisieren von Routineaufgaben dargestellt. Beispiele: Das Sortieren von Dateien, Sammeln von Informationen von verschiedene Webseiten, Bearbeiten von PDFs, Modifizieren von Word-Dateien, Excel-Tabellen bzw. Google Sheets. Das Versenden von Nachrichten via E-Mails in GMail oder SMS-Gateways werden auch thematisiert. Die Nachvollziehbarkeit des Codes für Neulinge steht dabei gegenüber der „Eleganz“ des Codes. Er bricht daher bewusst mit manchem Stilmittel. Hier mögen Veteranen die Nase rümpfen. Auch ist dies nicht für jeden Anwendungsfall ein valides Vorgehen. Ich finde es jedoch hinsichtlich des Zweckes des Buches gut gewählt.

Zusammengefasst: Ein interessantes Buch für Einsteiger in Python bzw. Programmierneulinge. Python ist zudem wieder bzw. weiterhin im Kommen. Es wird bspw. für Machine Learning oder Data Science häufig eingesetzt. Auch das T3N Magazin setzt das Erlenen der Skriptsprache Python auf die „Bucketlist für 2020„. Daher mein Tipp: Schaut Euch das Buch an & viel Spaß beim Python-Lernen!

PS: Für die „Lesefaulen“ gibt es auch einen Udemy-Kurs. Dieser ist jedoch nicht kostenfrei. Er wird aber mit 80% Discount unter Eingabe des Discount Codes „NOV2019“ subventioniert!

Fixing unmerged python-exec: Gentoo Linux und Portage nach emerge -C python-exec reparieren

Das Problem:

Beim Versuch konfliktäre Abhängigkeiten zwischen Paketen im Portage Paketmanager aufzulösen, habe ich python-exec mittels emerge -C von meinem Gentoo-Linux-System entfernt. Hinterher ist man oftmals schlauer… ;-). Anschließend waren dummerweise auf dem System weder portage noch Python verfügbar. Noch schlimmer: Tools wie emerge, revdep-rebuild waren ebenfalls weg. Somit konnte ich weder python-exec noch portage mittels der Gentoo Standardtools einfach wieder mergen und das System fixen. Das dachte ich zumindest… 😉

Die Lösung:

Meine initiale Suche führte mich auf die „offizielle“ Seite des Gentoo Projekts [3]. Diese beschreibt, wie man generell ein nicht funktionierendes Portage manuell reparieren kann. Zwar finden sich auf dieser Seite viele generische Hinweise, ich rate allerdings in diesem Fall davon ab, die dort genannten Schritte durchzuführen. Denn diese beziehen sich nicht auf das spezielle oben genannte Problem (Auslöser: emerge -C python-exec). D.h. sie „verschlimmbessern“ unter Umständen sogar die Situation. Ich habe dies dummerweies getan, kontraproduktive Schritte ausgeführt und musste zahlreiche Schleifen/Umwege drehen, um Portage wieder lauffähig zu bekommen.

Danach bin ich bin ich in den Gentoo Foren (Quellen [1], [2]) auf die nachfolgende Lösung gestoßen. Die Lösung in Kürze: Trotz eines emerge -C verbleiben die entsprechenden Binaries für emerge etc. auf dem System. Diese befinden sich bspw. unter /usr/lib/python-exec/python2.7/emerge . Sucht einfach mal dort! Hinweis: Ggf. müsst Ihr je nach Python Version den Pfad anpassen.

Anschließend kann man mittels der noch vorhanden Werkzeuge einfach python-exec wiederherstellen. Portage Dienste und Python sollten damit wieder funktionieren:

/usr/lib/python-exec/python2.7/emerge -1 dev-lang/python-exec
Hoffentlich konnte ich Euch damit etwas Zeit sparen. Solltet Ihr in die gleiche Falle wie ich gelaufen haben und hängen geblieben sein: Meldet Euch einfach, ggf. kann ich weiterhelfen! Wie immer gilt: Alle Hinweise/Ratschläge in diesem Blog erfolgen ohne Gewähr. Feedback ist willkommen!

Quellen:
[1]: https://forums.gentoo.org/viewtopic-p-7719268.html?sid=6874eea7b7dd5c57627428e9f8a1dfb3
[2]: https://forums.gentoo.org/viewtopic-p-7648990.html#7648990
[3]: https://wiki.gentoo.org/wiki/Project:Portage/Fixing_broken_portage