On this page
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
站点范围的自定义机制。