1401 Stimmen

Wie finde ich den Speicherort meines Python-Site-Packages-Verzeichnisses?

Wie finde ich den Speicherort meines Site-Packages-Verzeichnisses?

1078voto

Peterino Punkte 12374

Es gibt zwei Arten von Site-Package-Verzeichnissen, weltweit y pro Benutzer .

  1. 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"])'
  2. 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 o pip 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

700voto

eudoxos Punkte 17813
>>> import site; site.getsitepackages()
['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

(oder nur erstes Element mit site.getsitepackages()[0] )

383voto

Daryl Spitzer Punkte 131841

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)

109voto

David Hollander Punkte 1179

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.

86voto

Ramashri Punkte 835

Das hat bei mir funktioniert:

python -m site --user-site

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X