python 包搜索路径(Package Search Path)

在 Python 中,当你导入一个模块时,解释器会根据一定的顺序搜索模块所在的位置。这个搜索路径被称为包搜索路径(Package Search Path)。下面是 Python 包搜索路径的一般顺序:

  1. 当前目录:首先,解释器会在当前工作目录中查找要导入的模块或包。

  2. 内置模块:如果模块不在当前目录中,解释器将搜索内置模块。这些是 Python 标准库中包含的模块,如mathsys等。

  3. 环境变量 PYTHONPATH:如果模块不在内置模块中,解释器会检查环境变量 PYTHONPATH。(cmd: echo $PYTHONPATH)。 PYTHONPATH 是一个包含目录路径的列表,路径之间使用分号(Windows)或冒号(Linux/macOS)分隔。

  4. 安装的第三方库:如果模块不在 PYTHONPATH 指定的路径中,解释器会搜索已安装的第三方库。这些库通常会被安装在 Python 的 site-packages 目录下。

  5. 默认安装路径:最后,解释器会搜索 Python 的默认安装路径,其中包括标准库和其他默认安装的模块。

值得注意的是,解释器在搜索路径中按照顺序逐个查找,一旦找到匹配的模块,搜索过程就会停止,后面的路径将不再被考虑。

你可以使用 Python 的 sys 模块来查看当前的包搜索路径。以下是一个示例:

1import sys
2
3print(sys.path)

上述代码将打印出当前的包搜索路径列表,你可以看到解释器在搜索模块时按照这个顺序进行搜索。

需要注意的是,包搜索路径可以在运行时进行修改,例如通过在代码中使用 sys.path.append() 或设置 PYTHONPATH 环境变量,但这种做法并不被推荐,除非你有特殊的需求