Das Verzeichnis site-packageswird in verschiedenen Python-Artikeln erwähnt. Was ist es? Wie benutzt man es?
Das Verzeichnis site-packageswird in verschiedenen Python-Artikeln erwähnt. Was ist es? Wie benutzt man es?
Antworten:
site-packagesist das Zielverzeichnis von manuell erstellten Python-Paketen. Wenn Sie Python-Pakete aus dem Quellcode erstellen und installieren (unter Verwendung von distutils , wahrscheinlich durch Ausführen python setup.py install), finden Sie die installierten Module site-packagesstandardmäßig in.
Es gibt Standardstandorte:
prefix/lib/pythonX.Y/site-packagesexec-prefix/lib/pythonX.Y/site-packagesprefix\Lib\site-packages1 Pure bedeutet, dass das Modul nur Python-Code verwendet. Nicht rein kann auch C / C ++ - Code enthalten.
site-packagesist standardmäßig Teil des Python- Suchpfads , sodass dort installierte Module anschließend problemlos importiert werden können.
lib64!
/usr/lib/python3.6?
Wenn Sie die --userOption mit pip verwenden , wird das Paket im Ordner des Benutzers anstelle des globalen Ordners installiert, und Sie müssen den Befehl pip nicht mit Administratorrechten ausführen.
Der Speicherort des Paketordners des Benutzers kann wie folgt ermittelt werden:
python -m site --user-site
Dies wird so etwas wie drucken:
C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages
Wenn Sie die --userOption nicht mit pip verwenden , wird das Paket in einem globalen Ordner installiert, der wie folgt angegeben ist:
python -c "import site; print(site.getsitepackages())"
Dies wird so etwas wie drucken:
['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'
Hinweis: Die oben angegebenen Werte gelten für Windows 10 mit Anaconda 4.x, das standardmäßig installiert ist.
Site-Pakete sind nur der Ort, an dem Python seine Module installiert.
Sie müssen es nicht "finden", Python weiß selbst, wo es zu finden ist. Dieser Speicherort ist immer Teil des PYTHONPATH (sys.path).
Programmatisch können Sie es so finden:
import sys
site_packages = next(p for p in sys.path if 'site-packages' in p)
print site_packages
'/Users/foo/.envs/env1/lib/python2.7/site-packages'
site-packages, und dies wird sich erhöhen StopIteration. Zum Beispiel müssen Debian (und Ubuntu) dist-packagesihre verteilten Module installieren.
/usr/local/lib/python3.6/site-packagesauf Ubuntu