python 包搜索路径(Package Search Path)
在 Python 中,当你导入一个模块时,解释器会根据一定的顺序搜索模块所在的位置。这个搜索路径被称为包搜索路径(Package Search Path)。下面是 Python 包搜索路径的一般顺序:
当前目录:首先,解释器会在当前工作目录中查找要导入的模块或包。
内置模块:如果模块不在当前目录中,解释器将搜索内置模块。这些是 Python 标准库中包含的模块,如
math
、sys
等。环境变量
PYTHONPATH
:如果模块不在内置模块中,解释器会检查环境变量PYTHONPATH
。(cmd:echo $PYTHONPATH
)。PYTHONPATH
是一个包含目录路径的列表,路径之间使用分号(Windows)或冒号(Linux/macOS)分隔。安装的第三方库:如果模块不在
PYTHONPATH
指定的路径中,解释器会搜索已安装的第三方库。这些库通常会被安装在 Python 的site-packages
目录下。默认安装路径:最后,解释器会搜索 Python 的默认安装路径,其中包括标准库和其他默认安装的模块。
值得注意的是,解释器在搜索路径中按照顺序逐个查找,一旦找到匹配的模块,搜索过程就会停止,后面的路径将不再被考虑。
你可以使用 Python 的 sys
模块来查看当前的包搜索路径。以下是一个示例:
上述代码将打印出当前的包搜索路径列表,你可以看到解释器在搜索模块时按照这个顺序进行搜索。
需要注意的是,包搜索路径可以在运行时进行修改,例如通过在代码中使用 sys.path.append()
或设置 PYTHONPATH
环境变量,但这种做法并不被推荐,除非你有特殊的需求