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

Python项目ModuleNotFoundError:'app'非包问题求助

Python模块导入错误:'app' is not a package 解决方案

项目结构

|__src 
   |__main.py
   |__gen.py  
   |__app     
      |__ __init__.py
      |__ app.py
      |__ lang.py

问题场景

在app.py中尝试用from app.lang import Language导入同级lang.py里的Language类,直接运行app.py时触发ModuleNotFoundError,提示'app' is not a package,即使app目录下存在__init__.py文件。

解决方法

方法1:使用相对导入(推荐)

将导入语句改为相对路径形式,直接引用当前包内的同级模块:

from .lang import Language

这种写法明确指向当前目录下的lang.py,是包内部模块间引用的标准方式。

方法2:手动添加src目录到Python路径

如果坚持使用绝对导入,可在app.py开头添加代码,将src目录加入Python的模块搜索路径:

import sys
import os
# 获取当前文件的绝对路径,向上回溯到src目录
src_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(src_path)

# 之后即可正常使用绝对导入
from app.lang import Language

方法3:以模块方式从src目录运行脚本

不要直接执行app.py,而是进入src目录,用Python的模块运行方式启动:

cd src
python -m app.app

这种方式会自动将src作为根目录,Python能正确识别app为合法包,此时原有的绝对导入语句可正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:48:24