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

跨包导入模块时触发ModuleNotFoundError问题求助

Python模块导入报错问题

问题详情

我的文件夹结构如下:

app.py 中的代码:

from components import ControlFrame

ControlFrame.py 中的代码:

import MainFrame, OutputFrame, ButtonFrame, ControlFrame

单独运行ControlFrame.py一切正常,但运行app.py时出现如下报错:

Traceback (most recent call last):
  File "c:/Users/ehacimc/OneDrive - Ericsson/Desktop/KPI_GENERATOR/KPI_PPT_GENERATOR_CODE/src/app.py", line 19, in <module>
    from components import ControlFrame
  File "c:\Users\ehacimc\OneDrive - Ericsson\Desktop\KPI_GENERATOR\KPI_PPT_GENERATOR_CODE\src\components\ControlFrame.py", line 3, in <module>
    import MainFrame, OutputFrame, ButtonFrame, ControlFrame
ModuleNotFoundError: No module named 'MainFrame'

解决方法

这是Python模块导入路径不匹配导致的问题:

  • 单独运行ControlFrame.py时,Python的工作目录是components文件夹,能直接找到同目录下的其他模块;但运行app.py时,工作目录是src文件夹,Python默认不会去components子目录找模块,因此报错。

你可以按以下方式修改:

  1. 使用相对导入(推荐,适合同包内模块引用):
    修改ControlFrame.py的导入语句为:

    from . import MainFrame, OutputFrame, ButtonFrame
    # 注意:删除自身模块ControlFrame的导入,避免循环导入报错
    
  2. 使用绝对导入:
    基于项目的src目录结构,修改导入语句为:

    from components import MainFrame, OutputFrame, ButtonFrame
    
  3. 确保包结构合法:
    在components文件夹下创建一个空的__init__.py文件,让Python将该目录识别为可导入的包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:13:19