You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从子文件夹的文件中导入项目根目录下的文件

你遇到的报错是因为直接运行InnerFile.py时,Python将该文件视为顶层执行脚本,无法识别所属的包层级,所以相对导入失效。

解决方案

方案1:以模块方式运行脚本(最推荐,无需修改代码)

不要直接用python InnerFile.py运行脚本,切换到**项目根目录(project folder目录)**下,执行以下命令即可:

python -m folder1.folder2.folder3.InnerFile

该方式会让Python自动识别整个项目的包结构,你之前写的from .... import OuterFile导入语句可以正常使用。

方案2:动态将项目根目录加入导入搜索路径(适合需要直接运行单个脚本的场景)

在InnerFile.py最开头(导入其他业务代码之前)加入以下代码:

import sys
from pathlib import Path

# 向上回溯4层拿到项目根目录的绝对路径,加入Python导入搜索列表
root_path = Path(__file__).parent.parent.parent.parent.absolute()
sys.path.append(str(root_path))

# 之后可以直接导入OuterFile
import OuterFile

该方式不需要调整运行命令,直接运行InnerFile.py即可生效。

方案3:配置PYTHONPATH环境变量(适合长期开发的本地项目)

将你的项目根目录的绝对路径添加到系统的PYTHONPATH环境变量中,配置完成后所有Python脚本都可以直接识别该目录下的模块,直接写import OuterFile就能导入,不需要调整代码或运行命令。

注意事项

Python的相对导入只能用于包内部的模块间调用,被直接作为入口运行的顶层脚本不支持相对导入,属于语言层面的设计规则。

内容的提问来源于stack exchange,提问作者rainbow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:24:10