Le répertoire site-packagesest mentionné dans divers articles liés à Python. Qu'Est-ce que c'est? Comment l'utiliser?
Le répertoire site-packagesest mentionné dans divers articles liés à Python. Qu'Est-ce que c'est? Comment l'utiliser?
Réponses:
site-packagesest le répertoire cible des packages Python créés manuellement. Lorsque vous construisez et installez des packages Python à partir des sources (en utilisant distutils , probablement en exécutant python setup.py install), vous trouverez les modules installés dans site-packagespar défaut.
Il existe des emplacements standard:
prefix/lib/pythonX.Y/site-packagesexec-prefix/lib/pythonX.Y/site-packagesprefix\Lib\site-packages1 Pure signifie que le module utilise uniquement du code Python. Non pur peut également contenir du code C / C ++.
site-packagesfait par défaut partie du chemin de recherche Python , donc les modules installés là-bas peuvent être importés facilement par la suite.
lib64!
/usr/lib/python3.6?
Lorsque vous utilisez l' --useroption avec pip , le package est installé dans le dossier de l'utilisateur au lieu du dossier global et vous n'aurez pas besoin d'exécuter la commande pip avec les privilèges d'administrateur.
L'emplacement du dossier des packages de l'utilisateur peut être trouvé en utilisant:
python -m site --user-site
Cela imprimera quelque chose comme:
C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages
Lorsque vous n'utilisez pas l' --useroption avec pip , le package est installé dans le dossier global donné par:
python -c "import site; print(site.getsitepackages())"
Cela imprimera quelque chose comme:
['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'
Remarque: les valeurs imprimées ci-dessus concernent Windows 10 avec Anaconda 4.x installé avec les valeurs par défaut.
site-packages est juste l'emplacement où Python installe ses modules.
Inutile de le «trouver», python sait où le trouver par lui-même, cet emplacement fait toujours partie du PYTHONPATH (sys.path).
Par programme, vous pouvez le trouver de cette façon:
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, et cela augmentera StopIteration. Par exemple, Debian (et Ubuntu) doivent dist-packagesinstaller leurs modules distribués.
/usr/local/lib/python3.6/site-packagessur ubuntu