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

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 (inkl. aller Tools wie emerge, revdep-rebuild) noch Python verfügbar. Somit konnte ich weder python-exec noch portage mittels der Gentoo Standardtools einfach wieder aufsetzen und das System fixen. Das dachte ich zumindest… 😉

Meine initiale Suche führte mich auf die “offizielle” Seite des Gentoo Projekts [3], die beschreibt, wie man ein nicht funktionierendes Portage generell manuell reparieren kann: Zwar finden sich auf diese Seite viele generische Hinweise, um Portage Probleme beseitigen. Ich würde allerdings in diesem Fall davon abraten, die dort genannten Schritte durchzuführen. Diese beziehen sich nicht speziell auf das oben genannte Problem (Auslöser: emerge -C python-exec) und verschlimmbessern die Situation unter Umständen. Ich habe dies getan, kontraproduktive Schritte ausgeführt und musste zahlreiche Schleifen/Umwege drehen, um das verschlimmbesserte Portage wieder gerade zu ziehen…

Vielmehr bin ich in den Gentoo Foren (Quellen [1], [2]) auf die nachfolgende Lösung gestoßen. In Kürze: Trotz eines emerge -C verbleiben die entsprechenden Binaries für emerge etc. auf dem System. Diese befinden sich bei mir bspw. unter /usr/lib/python-exec/python2.7/emerge (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!

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