Python 加载模块的搜索路径
这里记录一下,在运行 import xxx 语句时,Python 运行时是怎么样查找这个模块的。
- Python 会从
sys.modules里查找,这个sys.modules里保存了已经加载过的模块; - 如果找不到,Python 会从
sys.path里查找;sys.path是一个包含了多个路径字符串的列表,依次包括了当前目录、标准库目录、site-packages、dist-packages等等安装第三方模块的目录;当然也不仅限于这些,比如还有虚拟环境指定的目录,手动在sys.path里指定的目录,等等; - 如果还是找不到,抛出
ModuleNotFoundError异常。
在 import xxx 成功后,可以通过 xxx.__name__ 和 xxx.__file__ 来查看模块的名字和所在路径。