Python 模块搜索路径

Python 会在什么地方寻找文件来导入模块?

使用命名为 path 变量的存储在标准 sys 模块 下的一系列目录名和 ZIP 压缩文件。

你可以读取和修改这个列表。下面是在我的 Mac 上 Python 3.3 的 sys.path 的内容:

>>> import sys
>>> for place in sys.path:
...    print(place)
...
/Library/Frameworks/Python.framework/Versions/3.3/lib/python33.zip /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3 /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/plat-darwin /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/lib-dynload /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages

最开始的空白输出行是空字符串 '',代表当前目录。

如果空字符串是在 sys.path 的开始 位置,Python 会先搜索当前目录:import report 会寻找文件 report.py。

第一个匹配到的模块会先被使用,这也就意味着如果你在标准库之前的搜索路径上定义一 个模块 random,就不会导入标准库中的 random 模块。

posted @ 2018-09-23 19:35  Ryan_zheng  阅读(663)  评论(0编辑  收藏  举报