De directory site-packages
wordt vermeld in verschillende Python-gerelateerde artikelen. Wat is het? Hoe het te gebruiken?
Antwoord 1, Autoriteit 100%
site-packages
IS DE DOELSTELLING van handmatig gebouwde python-pakketten. Wanneer u Python-pakketten van Bron bouwt en installeert (met Distutils , waarschijnlijk door het uitvoeren van python setup.py install
), vindt u de geïnstalleerde modules in site-packages
Standaard.
Er zijn standaardlocaties:
- UNIX (PURE) 1 sup>:
prefix/lib/pythonX.Y/site-packages
- UNIX (niet-puur):
exec-prefix/lib/pythonX.Y/site-packages
- Windows:
prefix\Lib\site-packages
1 sup>Zuiver betekent dat de module alleen Python-code gebruikt. Niet-puur kan ook C / C++ -code bevatten.
site-packages
is standaard deel van het zoekpad Python , zodat modules daarna gemakkelijk worden geïnstalleerd.
Handige waarde
- Python-modules installeren (voor Python 2)
- Python-modules installeren (voor Python 3)
Antwoord 2, Autoriteit 63%
Wanneer u --user
gebruikt met PIP , wordt het pakket geïnstalleerd in de map Gebruiker in plaats van Global Folder en u hoeft PIP-opdracht met admin te gebruiken niet privileges.
De locatie van de gebruiker van de pakketten van de gebruiker is te vinden met:
python -m site --user-site
Hierdoor drukt u iets als:
C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages
Als je de optie --user
met pipniet gebruikt, wordt het pakket geïnstalleerd in de algemene map die wordt gegeven door:
python -c "import site; print(site.getsitepackages())"
Hiermee wordt iets afgedrukt als:
['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'
Opmerking: Bovenstaande afgedrukte waarden zijn voor Windows 10 met Anaconda 4.x geïnstalleerd met standaardinstellingen.
Antwoord 3, autoriteit 34%
site-packages is gewoon de locatie waar Python zijn modules installeert.
Je hoeft het niet te “vinden”, python weet het zelf te vinden, deze locatie maakt altijddeel uit van het PYTHONPATH (sys.path).
Programmatisch kun je het op deze manier vinden:
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’
Antwoord 4
Op mijn CentOS7.9 Linux (een RedHat-kloon) is het te vinden in ~/.local/lib/python3.9/site-packages/
en het is niet nodig om het op te nemen in de PYTHONPATH variabele.