Документация Python неофициальный перевод

site – хук конфигурации для конкретного сайтаsite – Site-specific configuration hook

Этот модуль автоматически импортируется при инициализации. Автоматический импорт можно подавить с помощью флага интерпретатора -S.

Импорт этого модуля добавляет пути, специфичные для сайта, в путь поиска модулей.

Начинается с построения до четырех каталогов из головной и хвостовой частей. Для головной части используются sys.prefix и sys.exec_prefix; пустые головные части пропускаются. Для хвостовой части используется пустая строка, а затем lib/site-packages (в Windows) или lib/python|version|/site-packages, а затем lib/site-python (в Unix и Macintosh). Для каждой из различных комбинаций головы и хвоста проверяется, указывает ли она на существующий каталог, и если да, то он добавляется в sys.path, а также проверяет новый добавленный путь на наличие файлов конфигурации.

Файл конфигурации пути – это файл, имя которого имеет вид package.pth и находится в одном из четырех каталогов, упомянутых выше; его содержимое – дополнительные элементы (по одному на строку), добавляемые в sys.path. Несуществующие элементы никогда не добавляются в sys.path, но не проверяется, что элемент ссылается на каталог (а не на файл). Ни один элемент не добавляется в sys.path более одного раза. Пустые строки и строки, начинающиеся с #, пропускаются. Строки, начинающиеся с import (с последующим пробелом или табуляцией), выполняются.

Например, предположим, sys.prefix и sys.exec_prefix установлены в /usr/local. Библиотека Python X.Y устанавливается в /usr/local/lib/pythonX.Y (где для формирования имени каталога установки используются только первые три символа sys.version). Предположим, он содержит подкаталог /usr/local/lib/pythonX.Y/site-packages с тремя подподкаталогами, foo, bar и spam, и два файла конфигурации пути, foo.pth и bar.pth. Предположим, foo.pth содержит следующее:

# конфигурация пакета foo

foo
bar
bletch

а bar.pth содержит:

# конфигурация пакета bar

bar

Тогда в sys.path добавляются следующие специфические для версии каталоги (в указанном порядке):

/usr/local/lib/pythonX.Y/site-packages/bar
/usr/local/lib/pythonX.Y/site-packages/foo

Обратите внимание, что bletch пропущен, потому что не существует; каталог bar предшествует каталогу foo, так как bar.pth идёт раньше foo.pth в алфавитном порядке; а spam пропущен, потому что не упоминается ни в одном из файлов конфигурации пути.

После этих манипуляций с путями предпринимается попытка импортировать модуль с именем sitecustomize, который может выполнять произвольные настройки сайта. Если этот импорт завершается ошибкой с исключением ImportError, она молча игнорируется.

Обратите внимание, что для некоторых не-Unix систем sys.prefix и sys.exec_prefix пусты, и манипуляции с путями пропускаются; однако импорт sitecustomize всё же предпринимается.

site.PREFIXES
Список префиксов для каталогов пакетов сайта
site.ENABLE_USER_SITE
Флаг, показывающий статус пользовательского каталога сайта. Значение True означает, что пользовательский каталог сайта включен и добавлен в sys.path. Когда флаг равен None, пользовательский каталог сайта отключен по соображениям безопасности.
site.USER_SITE
Путь к пользовательскому каталогу сайта для текущей версии Python или None
site.USER_BASE
Путь к базовому каталогу для пользовательских каталогов сайта
PYTHONNOUSERSITE
PYTHONUSERBASE
site.addsitedir(sitedir, known_paths=None)
Добавляет каталог в sys.path и обрабатывает его pth-файлы.

XXX Обновить документацию XXX документировать python -m site –user-base –user-site