Wie finde ich den Speicherort meines Site-Packages-Verzeichnisses?
Antworten
Zu viele Anzeigen?Es gibt zwei Arten von Site-Package-Verzeichnissen, weltweit y pro Benutzer .
-
Global Standortpakete (" dist-packages ") Verzeichnisse sind aufgeführt in
sys.path
wenn Sie laufen:python -m site
Für eine übersichtlichere Liste führen Sie
getsitepackages
von der Baustellenmodul in Python-Code:python -c 'import site; print(site.getsitepackages())'
Anmerkung: Mit virtualenvs getsitepackages ist nicht verfügbar ,
sys.path
von oben listet jedoch das Verzeichnis site-packages der virtualenv korrekt auf. In Python 3 können Sie die sysconfig-Modul stattdessen:python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])'
-
Le site pro Benutzer site-packages-Verzeichnis ( PEP 370 ) ist der Ort, an dem Python Ihre lokalen Pakete installiert:
python -m site --user-site
Wenn dies auf ein nicht existierendes Verzeichnis zeigt, überprüfen Sie den Exit-Status von Python und sehen Sie nach
python -m site --help
für Erklärungen.Hinweis: Laufen
pip list --user
opip freeze --user
gibt Ihnen eine Liste aller installierten pro Benutzer Standort-Pakete.
Praktische Tipps
-
<package>.__path__
können Sie den/die Speicherort(e) eines bestimmten Pakets identifizieren: ( Details )$ python -c "import setuptools as _; print(_.__path__)" ['/usr/lib/python2.7/dist-packages/setuptools']
-
<module>.__file__
können Sie den Standort eines bestimmten Moduls ermitteln: ( Unterschied )$ python3 -c "import os as _; print(_.__file__)" /usr/lib/python3.6/os.py
-
ausführen.
pip show <package>
um Paketinformationen im Stil von Debian anzuzeigen:$ pip show pytest Name: pytest Version: 3.8.2 Summary: pytest: simple powerful testing with Python Home-page: https://docs.pytest.org/en/latest/ Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin and others Author-email: None License: MIT license Location: /home/peter/.local/lib/python3.4/site-packages Requires: more-itertools, atomicwrites, setuptools, attrs, pathlib2, six, py, pluggy
Eine Lösung, die:
- außerhalb von virtualenv - liefert den Pfad von weltweit Standort-Pakete,
- insidue a virtualenv - bietet die von virtualenv site-packages
...ist dieser Einzeiler:
python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
Der Lesbarkeit halber (und nicht als Einzeiler) formatiert, sieht das wie folgt aus:
from distutils.sysconfig import get_python_lib
print(get_python_lib())
Quelle: eine sehr alte Version von "Dokumentation "Wie man Django installiert (obwohl dies nicht nur für die Django-Installation nützlich ist)
Für Ubuntu ,
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
...ist nicht korrekt.
Sie wird Sie auf folgende Seiten verweisen /usr/lib/pythonX.X/dist-packages
Dieser Ordner enthält nur Pakete, die Ihr Betriebssystem automatisch installiert hat, damit die Programme ausgeführt werden können.
Unter ubuntu den Ordner site-packages, der die über setup_tools installierten Pakete enthält \easy_install\pip wird in /usr/local/lib/pythonX.X/dist-packages
Der zweite Ordner ist wahrscheinlich der nützlichere, wenn der Anwendungsfall mit der Installation oder dem Lesen von Quellcode zusammenhängt.
Wenn Sie nicht mit Ubuntu arbeiten, können Sie das erste Kästchen im Terminal kopieren und einfügen.
- See previous answers
- Weitere Antworten anzeigen