Python 3.8 从子文件夹导入代码报ModuleNotFoundError问题求助
Python 3.8 子文件夹模块导入报错解决方案
报错核心原因:Python 模块搜索路径未包含你的项目根目录
/MainProject,导致解释器无法识别Folder1为合法包。
前置问题排查
- 确认
Folder1下的__init__.py文件名拼写完全正确,不存在被系统隐藏的多余后缀(比如__init__.py.txt) - 确认导入写法和实际文件名匹配,你提供的第二种写法中
pyscript1为明显笔误,需要和实际文件名一致改为pyscript - 确认执行
runFile.py时的工作目录确实是/MainProject,可在runFile.py开头添加代码验证:
import os print(os.getcwd())
如果输出路径不是/MainProject的绝对路径,切换工作目录到该路径后再执行脚本即可。
直接修复方案
在runFile.py的最开头、所有导入代码之前添加以下代码,手动将项目根目录加入模块搜索路径:
import sys import os sys.path.append(os.path.dirname(os.path.abspath(__file__)))
添加完成后你原来的导入逻辑即可正常生效:
# 写法1:直接导入对应函数 from Folder1.pyscript import function # 写法2:先导入模块再调用函数 from Folder1 import pyscript pyscript.function()
长期优化方案
如果不想每次在入口文件添加路径配置,可以通过将项目安装为可编辑包的方式全局注册模块路径,在/MainProject目录下执行命令:pip install -e .
配置完成后所有项目内的导入逻辑都可以直接使用,不需要额外加路径代码。
内容的提问来源于stack exchange,提问作者Clemetti
相关产品推荐
相关产品推荐

