Каталог site-packagesупоминается в различных статьях, связанных с Python. Что это? Как это использовать?
Каталог site-packagesупоминается в различных статьях, связанных с Python. Что это? Как это использовать?
Ответы:
site-packages- это целевой каталог для пакетов Python, созданных вручную. Когда вы собираете и устанавливаете пакеты Python из исходного кода (используя distutils , возможно, выполняя python setup.py install), вы найдете установленные модули site-packagesпо умолчанию.
Есть стандартные локации:
prefix/lib/pythonX.Y/site-packagesexec-prefix/lib/pythonX.Y/site-packagesprefix\Lib\site-packages1 Pure означает, что модуль использует только код Python. Не чистый код также может содержать код C / C ++.
site-packagesпо умолчанию является частью пути поиска Python , поэтому установленные там модули можно легко импортировать впоследствии.
lib64!
/usr/lib/python3.6?
Когда вы используете --userопцию с pip , пакет устанавливается в папку пользователя, а не в глобальную папку, и вам не нужно запускать команду pip с правами администратора.
Местоположение папки пакетов пользователя можно найти с помощью:
python -m site --user-site
Это напечатает что-то вроде:
C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages
Если вы не используете --userопцию с pip , пакет устанавливается в глобальную папку, указанную:
python -c "import site; print(site.getsitepackages())"
Это напечатает что-то вроде:
['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'
Примечание. Указанные выше значения относятся к Windows 10 с установленным Anaconda 4.x со значениями по умолчанию.
site-packages - это просто место, где Python устанавливает свои модули.
Не нужно «искать его», python сам знает, где его искать, это местоположение всегда является частью PYTHONPATH (sys.path).
Программно это можно найти так:
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, и это будет расти StopIteration. Например, Debian (и Ubuntu) должны dist-packagesустановить свои распределенные модули.
/usr/local/lib/python3.6/site-packagesна убунту