运行Python脚本遇ModuleNotFoundError:'app'非包的问题求助
解决建议
问题原因
直接运行app/app.py时,Python会将app/目录加入模块搜索路径,而非项目根目录(enrichment-consumer/),因此无法将app识别为顶层Python包,导致导入失败。
具体解决方案
方案1:通过模块方式运行(推荐)
修改
app.py中的导入语句为相对导入:from .configs.logger import LOGGER(如果
configs下的实际文件名是__logger.py,则改为from .configs.__logger import LOGGER,建议将文件名重命名为logger.py,避免双下划线带来的内部模块歧义)切换到项目根目录(
/Users/asant/Desktop/enrichment-consumer/),执行命令:python -m app.app
方案2:添加项目根目录到PYTHONPATH
临时设置环境变量(终端执行):
- Mac/Linux:
export PYTHONPATH="/Users/asant/Desktop/enrichment-consumer:$PYTHONPATH" - Windows:
set PYTHONPATH=C:\Users\asant\Desktop\enrichment-consumer;%PYTHONPATH%
设置完成后,再执行python app/app.py即可正常导入。
方案3:检查文件名一致性
确认configs目录下的日志模块文件名:如果你的实际文件是__logger.py,当前导入语句from app.configs.logger import LOGGER会找不到模块,需改为:
from app.configs.__logger import LOGGER
或直接将__logger.py重命名为logger.py,保持导入路径和文件名一致。
内容的提问来源于stack exchange,提问作者asant-leitha
相关产品推荐
相关产品推荐

