La directory site-packagesè menzionata in vari articoli relativi a Python. Che cos'è? Come usarlo?
La directory site-packagesè menzionata in vari articoli relativi a Python. Che cos'è? Come usarlo?
Risposte:
site-packagesè la directory di destinazione dei pacchetti Python creati manualmente. Quando crei e installi pacchetti Python dai sorgenti (usando distutils , probabilmente eseguendolo python setup.py install), troverai i moduli installati in site-packagesper impostazione predefinita.
Ci sono posizioni standard:
prefix/lib/pythonX.Y/site-packagesexec-prefix/lib/pythonX.Y/site-packagesprefix\Lib\site-packages1 Pure significa che il modulo utilizza solo codice Python. Non puro può contenere anche codice C / C ++.
site-packagesfa parte per impostazione predefinita del percorso di ricerca di Python , quindi i moduli installati possono essere importati facilmente in seguito.
lib64!
/usr/lib/python3.6?
Quando si utilizza l' --useropzione con pip , il pacchetto viene installato nella cartella dell'utente anziché nella cartella globale e non sarà necessario eseguire il comando pip con i privilegi di amministratore.
La posizione della cartella dei pacchetti dell'utente può essere trovata utilizzando:
python -m site --user-site
Questo stamperà qualcosa come:
C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages
Quando non usi l' --useropzione con pip , il pacchetto viene installato nella cartella globale data da:
python -c "import site; print(site.getsitepackages())"
Questo stamperà qualcosa come:
['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'
Nota: i valori stampati sopra sono per Windows 10 con Anaconda 4.x installato con i valori predefiniti.
site-packages è solo la posizione in cui Python installa i suoi moduli.
Non c'è bisogno di "trovarlo", python sa dove trovarlo da solo, questa posizione fa sempre parte di PYTHONPATH (sys.path).
A livello di codice puoi trovarlo in questo modo:
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, e questo aumenterà StopIteration. Ad esempio, Debian (e Ubuntu) devono dist-packagesinstallare i loro moduli distribuiti.
/usr/local/lib/python3.6/site-packagessu Ubuntu