Wat is de map Python’s Site-Packages?

De directory site-packageswordt vermeld in verschillende Python-gerelateerde artikelen. Wat is het? Hoe het te gebruiken?


Antwoord 1, Autoriteit 100%

site-packagesIS 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-packagesStandaard.

Er zijn standaardlocaties:

  • UNIX (PURE) 1 : prefix/lib/pythonX.Y/site-packages
  • UNIX (niet-puur): exec-prefix/lib/pythonX.Y/site-packages
  • Windows: prefix\Lib\site-packages

1 Zuiver betekent dat de module alleen Python-code gebruikt. Niet-puur kan ook C / C++ -code bevatten.

site-packagesis standaard deel van het zoekpad Python , zodat modules daarna gemakkelijk worden geïnstalleerd.


Handige waarde


Antwoord 2, Autoriteit 63%

Wanneer u --usergebruikt 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 --usermet 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.

Other episodes