Spec-Zone.ru › Python 2.7

user — Настройка, специфичная для пользователя

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

Согласно политике, Python не выполняет пользовательский код при запуске программ 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.

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

См. также

Module site

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

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/user.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API