Heim  >  Artikel  >  Backend-Entwicklung  >  So finden Sie von Python installierte Pakete

So finden Sie von Python installierte Pakete

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-06-15 11:22:044798Durchsuche

Wie Python nach Paketen sucht

Verwandte Empfehlungen: „Python-Video

So finden Sie von Python installierte Pakete

Jetzt da Wahrscheinlich befindet sich nicht nur ein Python auf Ihrem Computer, sondern auch mehrere virtuelle Umgebungen. Bei der Installation des Pakets vergessen Sie versehentlich, auf den Pfad des Installationspakets zu achten. Lösen wir zunächst das Problem, eine Tasche zu finden. Die Antwort auf diese Frage ist sehr einfach, aber viele Menschen kennen dieses Prinzip nicht. Wenn der Pfad Ihres Python-Interpreters /bin/python lautet, sucht er beim Starten der interaktiven Python-Umgebung oder beim Verwenden dieses Interpreters zum Ausführen eines Skripts standardmäßig nach dem folgenden Speicherort:

/ lib (Standardbibliothekspfad)

/lib/pythonX.Y/site-packages (Dreiparteienbibliothekspfad, X.Y ist die Haupt- und Nebenversionsnummer, die Python entspricht, wie 3.7, 2.6)

Aktuelles Arbeitsverzeichnis (Rückgabeergebnis des pwd-Befehls)

Wenn Sie das Standard-Python unter Linux verwenden, ist Es selbst mit den Standardoptionen Aus dem zweiten Punkt oben können Sie ersehen, dass die Drittanbieter-Bibliothekspfade von Python mit verschiedenen Nebenversionen unterschiedlich sind. Wenn Sie Python von 3.6 auf 3.7 aktualisieren, sind die zuvor installierten Drittanbieter-Bibliotheken nicht mehr verfügbar. Natürlich können Sie auch den gesamten Ordner kopieren, was in den meisten Fällen kein Problem darstellt.

Mehrere nützliche Funktionen

sys.executable Der aktuell verwendete Python-Interpreterpfad

sys.path Die Suchpfadliste des aktuellen Pakets

sys.prefix aktuell verwendet

Beispiel:

>>> import sys
>>> sys.executable'/home/frostming/.pyenv/versions/3.7.2/bin/python'
>>> sys.path
['', '/home/frostming/.pyenv/versions/3.7.2/lib/python37.zip',
 '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7', 
 '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7/lib-dynload', 
 '/home/frostming/.local/lib/python3.7/site-packages', 
 '/mnt/d/Workspace/pipenv', '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7/site-packages']
 >>> sys.prefix'/home/frostming/.pyenv/versions/3.7.2'

Verwenden Sie Umgebungsvariablen, um den Suchpfad hinzuzufügen

Wenn Ihr If the Wenn der Pfad des Pakets in der oben aufgeführten Suchpfadliste nicht vorhanden ist, können Sie den Pfad zur Umgebungsvariablen PYTHONPATH hinzufügen und mehrere Pfade trennen mit: (für Windows;).

Achten Sie jedoch darauf, die Pfade von Paketen verschiedener Python-Versionen nicht zu PYTHONPATH hinzuzufügen, wie z. B. PYTHONPATH=/home/frostming/.local/lib/python2.7/site-packages, da die Pfade in PYTHONPATH are Priorisiert den Standardsuchpfad, was bei Verwendung von Python 3 zu Kompatibilitätsproblemen führen kann.

PATH ist übrigens der Suchpfad, der verwendet wird, um ausführbare Programme zu finden. Wenn Sie den Befehl my_cmd im Terminal ausführen, scannt das System die Pfade in PATH, um zu sehen, ob my_cmd in diesem Pfad vorhanden ist. Wenn also angezeigt wird, dass das Programm nicht gefunden oder der Befehl nicht erkannt werden kann, müssen Sie prüfen, ob der Pfad zu PATH hinzugefügt wurde.

So installieren Sie Python-Pakete

Heutzutage wird Pip grundsätzlich zum Installieren von Python-Paketen verwendet. Auch wenn Sie Pipenv oder Poemy verwenden, ist die unterste Ebene immer noch Pip ist immer anwendbar. Wenn Sie pip nicht installiert haben, lesen Sie bitte hier nach. Wenn Sie es installiert haben und den Befehl pip immer noch nicht verwenden können, lesen Sie bitte den vorherigen Abschnitt.

Es gibt zwei Möglichkeiten, pip auszuführen:

pip ...
python -m pip ...

Der erste Weg und der zweite Weg sind ähnlich, der Unterschied besteht darin, dass der Python-Interpreter im ersten Weg verwendet wird Wenn Ihr Pip-Pfad in Pip /bin/pip ist, lautet der entsprechende Python-Pfad im Allgemeinen /bin/python. Die zweite Methode gibt explizit den Speicherort von Python an. Diese Regel gilt für alle ausführbaren Python-Programme. Der Vorgang ist in der folgenden Abbildung dargestellt.

So finden Sie von Python installierte Pakete

Wenn Sie dann pip zur Installation des Pakets verwenden, wird es automatisch unter /lib/pythonX.Y/site-packages ( /lib/pythonX.Y/site-packages) installiert, ohne eine benutzerdefinierte Konfiguration hinzuzufügen ;path_prefix> wird aus dem vorherigen Absatz abgerufen), das ausführbare Programm wird unter /bin installiert. Wenn Sie es direkt mit my_cmd in der Befehlszeile ausführen müssen, denken Sie daran, es zu PATH hinzuzufügen.

Optionen in pip zum Ändern des Installationsorts

--prefix PATH, ersetzen Sie durch den angegebenen Wert--root ROOT_PATH, in Fügen Sie ROOT_PATH hinzu, z. B. --root /home/frostming, ändert sich von /usr zu /home/frostming/usr--target TARGET, geben Sie den Installationsort direkt in TARGET an

Virtuelle Umgebung

Der Zweck einer virtuellen Umgebung besteht darin, die Abhängigkeitspakete verschiedener Projekte zu isolieren und sie in unterschiedlichen Pfaden zu installieren, um Abhängigkeitskonflikte zu verhindern. Nachdem Sie verstanden haben, wie Python Pakete installiert, ist es nicht schwer, die Prinzipien virtueller Umgebungen (virtualenv, venv-Module) zu verstehen. Tatsächlich kopiert das Ausführen von virtualenv myenv einen neuen Python-Interpreter nach myenv/bin und erstellt Verzeichnisse wie myenv/lib, myenv/lib/pythonX.Y/site-packages (das Modul venv wird nicht zum Kopieren verwendet, sondern die Ergebnisse). sind grundsätzlich gleich). Nach der Ausführung von source myenv/bin/activate wird myenv/bin vor PATH eingefügt, sodass zuerst der kopierte Python-Interpreter durchsucht wird. Auf diese Weise ist bei der späteren Installation des Pakets myenv, wodurch eine Isolierung des Installationspfads erreicht wird.

Zusammenfassung

Wenn Sie dies sehen, können Sie feststellen, dass das Wichtigste bei der Paketpfadsuche das Pfadpräfix ist, und dieser Wert wird vom verwendeten Python-Interpreterpfad abgeleitet. Um den Pfad des Pakets zu finden, müssen Sie also nur den Pfad des Interpreters kennen. Wenn sich der Pfad des Pakets ändert, müssen Sie nur den gewünschten Python-Interpreter über die richtige PATH-Einstellung angeben.

Jetzt zurück zu den drei Fragen am Anfang: Können Sie sie lösen? Schreiben Sie Ihre Schritte oder Lösungen zur Fehlerbehebung in den Kommentarbereich.

Die Beispiele in diesem Artikel verwenden alle Unix-Pfadkonventionen. Wenn es sich um ein Windows-System handelt, sollten entsprechende Änderungen vorgenommen werden. /bin sollte beispielsweise /Scripts sein ↩

Das obige ist der detaillierte Inhalt vonSo finden Sie von Python installierte Pakete. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn