在Python中,当你尝试导入一个模块时,Python解释器会按照一定的规则在文件系统中查找对应的文件¹²³⁴。具体来说,Python解释器会按照以下的顺序查找模块:
- 内建模块:Python解释器会首先查看该模块是否是内建模块,也就是说,该模块是否是Python解释器内部的一部分¹²³⁴。
- sys.modules:如果该模块不是内建模块,Python解释器会查看该模块是否已经被导入¹²³⁴。如果该模块已经被导入,Python解释器会直接使用已经导入的模块¹²³⁴。
- sys.path:如果该模块既不是内建模块,也没有被导入,Python解释器会在
sys.path
变量所列出的目录中查找该模块¹²³⁴。sys.path
变量包含了当前目录、PYTHONPATH环境变量中的目录,以及Python安装时设定的默认目录¹²³⁴。
因此,如果你有两个同名的模块,一个在父文件夹中,一个在子文件夹中,Python解释器会导入在sys.path
中先找到的那个模块¹²³⁴。具体导入哪一个模块取决于你的模块导入语句以及你的sys.path
设置¹²³⁴。
例如,如果你的文件结构如下:
project/
main.py
module.py
subfolder/
module.py
在main.py
中,你可以通过以下方式导入模块:
import module
:这将导入project/
目录下的module.py
¹²³⁴。from subfolder import module
:这将导入project/subfolder/
目录下的module.py
¹²³⁴。
希望这个解释对你有所帮助!源: 与必应的对话, 2023/12/2
(1) Python如何import不同文件夹下的文件(module) - 知乎. https://zhuanlan.zhihu.com/p/451438246.
(2) python项目文件夹内的脚本,如何引用另一个文件夹的脚本? - 知乎. https://www.zhihu.com/question/601426373.
(3) 立马搞定同一目录下相邻文件夹中的Python Import,只想赶紧搞定下班的来! - 知乎. https://zhuanlan.zhihu.com/p/621425619.
(4) python引入同一目录下的py文件_从同一个文件夹下引入另一个py文件用写文件夹名称吗-CSDN博客. https://blog.csdn.net/qq_37950540/article/details/84452642.
标签:脚本,解释器,Python,py,导入,模块,import,文件夹 From: https://blog.51cto.com/u_16055028/8654118