

Voreinstellungen
Bestätigung eingestellt für:
Wer aus gewissen Gründen ein Python 3 z.B. wie ich von 3.5 auf 3.6 "upgraden" musste und mittels update-alternatives dann auch Python 3.6 nutzt, stößt u.a. bei Certbot unter Debian 9 (Stretch) auf ein kleines Problem. Bei der Ausführung von certbot, kommt es bei fehlerhafter Konfiguration zur Fehlerausgabe ModuleNotFoundError: No module named '_cffi_backend'.
Verlinken von Python 3.6 Site Packages zu Pypthon 3.5 Dist-Packages
Eine Möglichkeit ist, im Ordner /usr/local/lib/python3.6/site-packages/ einen Symbollink mittels ln -s /usr/lib/python3/dist-packages/_cffi_backend.cpython-35m-x86_64-linux-gnu.so _cffi_backend.cpython-36m-x86_64-linux-gnu.so zu machen – vorausgesetzt, das Paket python3-cffi ist installiert. Allerdings ist Certbot schlau und meckert einen dann an, dass die installierte Version (bei mir 0.28.0) für Python 3.5 kompiliert wurde. Man setzt also hier einen Python 3.6 Symbollink auf eine Python 3.5 Datei.
Die Abhilfe
Sollte Python 3.5 weiterhin installiert sein, muss einfach nur die Certbot Datei angepasst werden.
Damit Certbot weiterhin mit Python 3.5 ausgeführt wird, muss mittels nano /usr/bin/certbot die 1. Zeile des Dateikopfes wie folgt angepasst werden:
Von
#!/usr/bin/python3
zu
#!/usr/bin/python3.5
Es gibt sicher sauberere Lösungen, doch für Debian gibt es keine gesonderte PPA wie für Ubuntu und Snap wollte bzw. will ich nicht installieren. Von Certbot wird nämlich die Installation über Snap empfohlen. Zwar zeigt Certbot noch andere alternative Installationen auf, allerdings funktioniert es auch so und sollte keine Nachteile bringen.
Die sauberste Methode ist jedoch nach wie vor die Linux Distribution auf eine neue Version zu upgraden. Dadurch gibt es auch die neueren Versionen in den Repositories der Distri-Anbieter.
Veröffentlicht: 01.03.2021 | Letztes Update: 21.10.2022



