小编典典

如果import语句仅包含文件名,python如何找到模块文件?

python

我在任何地方都能看到使用import sys或的Python代码导入模块import mymodule

如果没有提供目录或路径,解释器如何找到正确的文件?


阅读 207

收藏
2020-12-20

共1个答案

小编典典

http://docs.python.org/3/tutorial/modules.html#the-module-search-
path

6.1.2。模块搜索路径

spam导入名为的模块时,解释器首先搜索具有该名称的内置模块。如果未找到,那么它将搜索spam.py该变量给定的目录列表中命名的文件sys.pathsys.path从以下位置初始化:

  • 包含输入脚本的目录(如果未指定文件,则为当前目录)。
  • PYTHONPATH(目录名称列表,语法与shell变量相同PATH)。
  • 取决于安装的默认值。

注意:在支持符号链接的文件系统上,在遵循符号链接之后计算包含输入脚本的目录。换句话说,包含符号链接的目录不会添加到模块搜索路径中。

初始化后,Python程序可以进行修改sys.path。包含正在运行的脚本的目录位于搜索路径的开始,在标准库路径之前。这意味着将加载该目录中的脚本,而不是库目录中相同名称的模块。除非打算进行更换,否则这是一个错误。有关更多信息,请参见标准模块部分。

有关“特定于安装的默认设置”的信息,请参阅模块site文档。

2020-12-20