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

28.15. user – Пользовательский хук конфигурацииuser – User-specific configuration hook

Устарело с версии 2.6: Модуль user удалён в Python 3.

В соответствии с общей политикой, Python не запускает пользовательский код при запуске программ. (Только интерактивные сессии выполняют сценарий, указанный в переменной окружения PYTHONSTARTUP, если она существует.)

Однако некоторые программы или сайты могут посчитать удобным разрешить пользователям иметь стандартный файл настройки, который выполняется, когда программа запрашивает его. Этот модуль реализует такой механизм. Программа, которая хочет использовать этот механизм, должна выполнить оператор

import user

Модуль user ищет файл .pythonrc.py в домашней директории пользователя и, если его можно открыть, выполняет его (с помощью execfile()) в собственном глобальном пространстве имён модуля user. Ошибки на этом этапе не перехватываются; это возлагается на программу, импортирующую модуль user, если она того пожелает. Предполагается, что домашняя директория задаётся переменной окружения HOME; если она не установлена, используется текущая директория.

Пользовательский файл .pythonrc.py мог бы, в принципе, проверять sys.version, если требуется выполнять разные действия в зависимости от версии Python.

Предупреждение пользователям: рекомендуется быть крайне осторожным при выборе содержимого файла .pythonrc.py. Поскольку неизвестно, какие программы будут его использовать, изменение поведения стандартных модулей или функций, как правило, не является хорошей идеей.

Предложение для программистов, желающих использовать этот механизм: простой способ позволить пользователям задавать параметры вашего пакета – попросить их определить переменные в своём файле .pythonrc.py, которые вы проверяете в своём модуле. Например, модуль spam, имеющий уровень подробности вывода, может искать переменную user.spam_verbose следующим образом:

import user

verbose = bool(getattr(user, "spam_verbose", 0))

(Трёхаргументная форма getattr() используется в случае, если пользователь не определил spam_verbose в своём файле .pythonrc.py.)

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

Программы, для которых важны безопасность или конфиденциальность, не должны импортировать этот модуль; пользователь может легко взломать программу, поместив произвольный код в файл .pythonrc.py.

Модули общего назначения не должны импортировать этот модуль; это может помешать работе импортирующей программы.

См. также

Модуль site

Механизм общесайтовой настройки.