Conversation
Notices
-
Nachdem ich jetzt mal ein wenig meine mit pip installierten Python-Pakete aufgeräumt habe, scheint auch das Zusammenspiel und das Message Carboning mit OMEMO wieder zu klappen.
Im wesentlichen:
sudo pip uninstall python-axolotl-curve25519
pip install --user python-axolotl-curve25519 qrcode
Am besten wäre es gewesen, ich würde gleich
pip install --user python-axolotl protobuf==2.6.0 qrcode
machen. Mein Problem war, dass ich anfangs vor allem "sudo pip install" und Pakete mit zypper für Python installiert hatte, dann teilweise auf "pip install --user" umgestiegen bin und dabei python-axolotl-curve25519 vergessen hatte.
Dann hatte ich auf einem meiner Geräte noch die Fehlermeldung "ImportError: No module named builtins", die ließ sich mit einem
pip install --user future
beheben.
-
@steckerhalter @benediktg Ich versuche generell #Python pip, #Ruby gem, #JavaScript npm etc zu vermeiden und alles über #apt abzuwickeln. Zu wissen, dass bei einer Deinstallation eines Programms/Bibliothek etwas Unerwünschtes zurückbleibt treibt mich in den Wahnsinn. Noch schlimmer ist es, wenn man etwas gar nicht deinstallieren kann!
-
@steckerhalter virtualenv benutze ich auch, (insbesondere im Zusammenhang mit dem virtualenvwrapper) aber nur zu Entwicklungszwecken. Gajim starte ich ja nicht von der Kommandozeile, wo ich vorher noch ein "workon gajim" ausführen könnte.
pip install --user installiert alles nach ~/.local/lib und ohne root-Rechte, aber dafür global für alle Programme – genau richtig für Programme wie gajim, die ich einfach nur benutzen möchte.
-
@richardbaeck @steckerhalter Habe ich auch schon probiert, aber dann musste ich devel-Repos (aus dem openSUSE Build Service) einbinden. Und selbst dann gibt es noch nicht alle Bibliotheken.
pip install --user und virtualenvs habe den großen Vorteil, dass sie a) ohne Privilegien funktionieren (kein Code wird von root ausgeführt) und man b) bei letzteren (für Entwicklungszwecke) einfach pip install -r requirements.txt machen kann und alle Abhängigkeiten, die der Entwickler angegeben hat, installiert werden. Einfacher geht es kaum und es ist i. d. R. auch notwendig, weil nicht sichergestellt ist, dass die Entwickler auch die gleiche Distribution verwenden bzw. man will ja eigentlich auch nicht eine Bibliothek global installieren, die man nur für dieses eine Entwicklungsprojekt braucht (oder doch für ein anderes, aber in einer anderen Version).
Aber man sollte nie "sudo pip install" machen, wie ich es vorher immer gemacht habe...
-
@richardbaeck @steckerhalter Bei npm gibt es auch virtualenvs, aber da sieht mein Umgang damit einfach so aus, dass ich nodejs schlicht meide. :D
-
@steckerhalter Wenn ein Python-Paket bereits in /usr/lib vorhanden ist, dann sind diese Abhängigkeiten bereits erfüllt und werden folglich nicht in ~/.local/lib installiert.
Ein virtualenv ist komplett vom Rest abgekoppelt, da wird genau das installiert, was du ihm sagst (was für Entwicklungszwecke auch sinnvoll, da kann man in der requirements.txt genau das Setup angeben, damit das Programm läuft und es kommt nicht mit anderen in die Quere.)