我一直在学习 Python,我正在使用 2.7.3,并且我正在尝试理解import
语句。
文档说,当您尝试导入模块时,解释器将首先搜索其中一个内置模块。
内置模块是什么意思?
然后,文档说解释器在 sys.path 列出的目录中搜索,并且 sys.path 是从这些源初始化的:
- 包含输入脚本的目录(或当前目录)。
PYTHONPATH
(目录名称列表,与 shell 变量的语法相同PATH
)。- 安装相关的默认值。
这是我的计算机在命令行模式下使用 python 的 sys.path 命令的示例输出:(我删除了一些,以免它很大)
['', '/usr/lib/python2.7', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntuone-couch', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol']
现在,我假设“”路径是指包含“脚本”的目录,所以我认为其余的将来自我的
PYTHONPATH
环境变量。但是,当我转到终端并键入env
时,PYTHONPATH
它不作为环境变量存在。我也试过import os
了os.environ
,但我得到了相同的输出。我真的没有 PYTHONPATH 环境变量吗?我不相信我曾经专门定义过 PYTHONPATH 环境变量,但我认为当我安装新软件包时,它们会自动更改该环境变量。如果我没有 PYTHONPATH,我的 sys.path 是如何填充的?如果我下载新包,如果我没有这个 PYTHONPATH 变量,Python 怎么知道在哪里寻找它们?
环境变量如何工作?据我了解,环境变量特定于为其设置的进程,但是,如果我打开多个终端窗口并运行
env
,它们都会显示许多相同的变量,例如PATH
. 我知道持久性环境变量的文件位置,例如/etc/environment
,其中包含我的PATH
变量。是否可以判断持久环境变量的存储位置?存储新的持久环境变量的推荐位置是什么?环境变量实际上如何与 Python 解释器一起工作?Python 解释器会寻找PYTHONPATH
,但它在本质层面是如何工作的?