28.15. 用户-用户特定的配置钩子

自 2.6 版起弃用:user模块已在 Python 3 中删除。

作为一项 Policy,Python 在启动 Python 程序时不会运行用户指定的代码。 (只有交互式会话执行 PYTHONSTARTUP环境变量中指定的脚本(如果存在)。

但是,某些程序或站点可能会发现允许用户拥有标准的自定义文件很方便,该文件可在程序请求时运行。该模块实现了这样的机制。希望使用该机制的程序必须执行以下语句

import user

user模块在用户的主目录中查找文件.pythonrc.py,如果可以打开该文件,则在其自己的(模块user)全局名称空间中执行该文件(使用execfile())。此阶段的错误不会被捕获;如果愿意,则取决于导入user模块的程序。假定主目录由 HOME环境变量命名;如果未设置,则使用当前目录。

如果用户希望.pythonrc.py希望根据 Python 版本执行其他操作,则可以测试sys.version

对用户的警告:保守您在.pythonrc.py文件中的内容。由于您不知道将使用哪些程序,因此更改标准模块或Function的行为通常不是一个好主意。

对于希望使用此机制的程序员的建议:让用户为程序包指定选项的一种简单方法是,让他们在要在模块中测试的.pythonrc.py文件中定义变量。例如,具有详细级别的模块spam可以寻找变量user.spam_verbose,如下所示:

import user

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

(如果用户未在.pythonrc.py文件中定义spam_verbose,则使用getattr()的三参数形式。)

具有广泛定制需求的程序最好阅读特定于程序的定制文件。

出于安全或隐私考虑的程序不应*导入该模块;用户可以pass在.pythonrc.py文件中放置任意代码来轻松地闯入程序。

通用模块不应*导入该模块;它可能会干扰导入程序的操作。

See also

  • Module site

  • 站点范围的自定义机制。