Если параметр -S
не передан в двоичный файл python
, специальный модуль site импортируется по умолчанию перед передачей выполнения в ваш сценарий или в интерактивный интерпретатор.Помимо прочего модуль ищет файлы *.pth
.В каждой строке файлы *.pth
должны содержать либо путь для включения в sys.path
, либо команду для выполнения.Модуль также импортирует sitecustomize
и usercustomize
(которые могут содержать произвольный код, хороший способ заставить ваших коллег сходить с ума, если они вызывают ошибки), если они существуют где-то в sys.path
.
Проблема, однако, в том, что текущий каталог находится не в sys.path
, когда импортируется модуль site
, то есть трудно настроить ваш конкретный сценарий.
Я иногда добавляюследующая строка в начале моих сценариев, чтобы сценарий начинался с поиска файлов .pth
в текущем каталоге и добавления отсутствующих путей к sys.path
:
# search for *.pth files in the current directory
import site; site.addsitedir('')