usercustomize是什么
我在很多文档中看到提到“usercustomize”。这到底是什么东西呢?
我使用的是Ubuntu 12.0,Python 3.3,正在用IDLE这个解释器。
我在 /usr/lib/python3.3
目录下添加了一个 'usercustomize.py'
文件,里面写了以下代码:
import math
我启动了IDLE解释器。在没有导入math模块的情况下,我输入了 math.sqrt(
然后按下Ctrl + \来启动自动补全提示,屏幕上出现了 sqrt(x)
的提示。这看起来像是math模块已经被导入了。但实际上调用这个函数时却出现了 NameError
的错误。
这到底是怎么回事呢?
1 个回答
4
查看site
模块,可以了解usercustomize
的详细功能。
需要注意的是,只有在site.ENABLE_USER_SITE
被启用的情况下,usercustomize
才会被导入:
如果
ENABLE_USER_SITE
为真,系统会尝试导入一个名为usercustomize
的模块,这个模块可以进行用户特定的自定义设置。这个文件应该放在用户的site-packages目录中(见下文),这个目录是sys.path
的一部分,除非通过-s
禁用它。导入错误ImportError
会被默默忽略。
把math
模块导入到usercustomize
中并不会让它在IDLE中可用;这样并不能让它变成内置模块。你可以把它添加到builtins
模块中,但我不建议这样做。
usercustomize
并不是用来设置默认的IDLE环境,它的目的是为了在sys.path
模块搜索路径中添加额外的条目,以及进行其他一些Python运行环境的更改。