
Ich verwende eine Neuinstallation von OpenSUSE 13.2 Tumbleweed, das mit Python 2.7 und Python 3.4 geliefert wird. Ich habe ständig Probleme beim Ausführen von Python-basierten Bibliotheken und erhalte den folgenden Fehler ImportError: No module named site
. Alle Antworten auf dieses Problem befassen sich mit dem Einstellen der Umgebungsvariablen PYTHONPATH und/oder PYTHONHOME auf einen Pfad, aber ich habe jede erdenkliche Pfadkombination ausprobiert und nichts funktioniert. Irgendwelche Ideen?
Die Bibliotheken, mit denen ich Probleme habe, sind youtube-dl und flexget.
Antwort1
Es ist die Aufgabe Ihrer Distribution, die Bibliotheksverwaltung richtig zu gestalten – auch für Dinge wie Python, die sich scheinbar besonders viel Mühe geben, es schwierig zu machen.
Führen Sie Python 2-Programme mit
#!/usr/bin/python2
und Python 3-Programme mit aus#!/usr/bin/python3
. Oder indem Sie sie alspython2 script
oder aufrufenpython3 script
. Verwenden Sie nicht#!/usr/bin/env python
, das war schon ein schwachsinniger Rat, bevor es zwei Pythons gab.Verwenden Sie nach Möglichkeit die gepackten Versionen der Python-Bibliotheken der Distribution. Selbst wenn Sie eine ganze Woche auf die gepackte Version 1.2.0.0.0.0.3 warten müssen, während Sie auf der alten Version 1.2.0.0.0.0.2 festsitzen. Oder Monate. Es kommt äußerst selten vor, dass eine aktualisierte Bibliothek das Risiko wert ist, Ihr System durcheinander zu bringen. Auf sie zu verzichten oder „eine andere Bibliothek zu verwenden“ ist fast immer eine bessere Lösung als „mein System durch manuelle Installation dieser Bibliothek durcheinander zu bringen“.
Wenn Sie eine Bibliothek manuell installieren müssen,Passen Sie die Anweisungen an Ihr System an. Die Anweisungen funktionieren möglicherweise (größtenteils) auf dem System des Entwicklers, basieren jedoch auf einer enormen Anzahl von Annahmen darüber, wie die Dinge eingerichtet werden - und die meisten davon sind für Ihr System wahrscheinlich falsch. Dies bedeutet, dass Sie die entsprechende Dokumentation und die Hinweise der Distribution gründlich lesen und die Python-Umgebung Ihres Systems und deren Funktionsweise verstehen müssen.
Wenn Sie die Anweisungen nicht an Ihr System anpassen, kann das Ihre Python-Umgebung durcheinanderbringen, selbst wenn Ihre Distribution alles richtig gemacht hat, was die Verwaltung der Python-Bibliotheken angeht. Dies ist leider ein häufiges Ergebnis für Python (und Ruby) und kommt bei keiner anderen Programmier- oder Skriptsprache vor. In der Python-Welt gibt es VIELE schlechte Ratschläge, die Ihnen im Wesentlichen sagen, dass Sie die Distribution oder das Betriebssystem ignorieren und es als Hindernis betrachten sollen, das es zu umgehen gilt (und nicht als Werkzeug, das Sie verwenden und mit dem Sie arbeiten können).