El directorio site-packagesse menciona en varios artículos relacionados con Python. ¿Qué es? ¿Cómo usarlo?
El directorio site-packagesse menciona en varios artículos relacionados con Python. ¿Qué es? ¿Cómo usarlo?
Respuestas:
site-packageses el directorio de destino de los paquetes de Python construidos manualmente. Cuando compila e instala paquetes de Python desde la fuente (usando distutils , probablemente ejecutándolos python setup.py install), encontrará los módulos instalados en site-packagesforma predeterminada.
Hay ubicaciones estándar:
prefix/lib/pythonX.Y/site-packagesexec-prefix/lib/pythonX.Y/site-packagesprefix\Lib\site-packages1 Pure significa que el módulo usa solo código Python. Los no puros también pueden contener código C / C ++.
site-packageses parte predeterminada de la ruta de búsqueda de Python , por lo que los módulos instalados allí se pueden importar fácilmente después.
lib64!
/usr/lib/python3.6?
Cuando usa la --useropción con pip , el paquete se instala en la carpeta del usuario en lugar de en la carpeta global y no necesitará ejecutar el comando pip con privilegios de administrador.
La ubicación de la carpeta de paquetes del usuario se puede encontrar usando:
python -m site --user-site
Esto imprimirá algo como:
C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages
Cuando no usa la --useropción con pip , el paquete se instala en la carpeta global dada por:
python -c "import site; print(site.getsitepackages())"
Esto imprimirá algo como:
['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'
Nota: Los valores impresos anteriores son para Windows 10 con Anaconda 4.x instalado con los valores predeterminados.
site-packages es solo la ubicación donde Python instala sus módulos.
No es necesario "encontrarlo", Python sabe dónde encontrarlo por sí mismo, esta ubicación siempre es parte de PYTHONPATH (sys.path).
Programáticamente puede encontrarlo de esta manera:
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, y esto aumentará StopIteration. Por ejemplo, Debian (y Ubuntu) tienen dist-packagesque instalar sus módulos distribuidos.
/usr/local/lib/python3.6/site-packagesen ubuntu