Python 加载模块的搜索路径

这里记录一下,在运行 import xxx 语句时,Python 运行时是怎么样查找这个模块的。

  1. Python 会从 sys.modules 里查找,这个 sys.modules 里保存了已经加载过的模块;
  2. 如果找不到,Python 会从 sys.path 里查找;sys.path 是一个包含了多个路径字符串的列表,依次包括了当前目录、标准库目录、site-packagesdist-packages 等等安装第三方模块的目录;当然也不仅限于这些,比如还有虚拟环境指定的目录,手动在 sys.path 里指定的目录,等等;
  3. 如果还是找不到,抛出 ModuleNotFoundError 异常。

import xxx 成功后,可以通过 xxx.__name__xxx.__file__ 来查看模块的名字和所在路径。

Read More: