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

Python导入模块报错:ModuleNotFoundError: No module named 'test_invoke'

解决Flask项目中ModuleNotFoundError: No module named 'test_invoke'的问题

问题根源

你的项目目录里,main_call.py和invoke.py、config.py都处于test_invoke目录下,当前导入语句from test_invoke.invoke import end_invoke使用了绝对导入,但运行脚本的方式导致Python无法将test_invoke识别为合法模块。


方案一:修改导入语句(最简单直接)

将main_call.py中的导入语句改为相对当前目录的导入:

# 替换原有的 from test_invoke.invoke import end_invoke
from invoke import end_invoke

from config import config可以保持不变,因为config.py同样在当前目录下。

修改完成后,直接在test_invoke目录下执行python3 main_call.py即可正常启动项目。


方案二:使用模块方式运行脚本(保留绝对导入)

如果想保留from test_invoke.invoke import end_invoke的绝对导入写法,需要切换到test_invoke的上级目录,然后以模块形式运行脚本:

# 假设当前工作目录是test_invoke的上级目录
python3 -m test_invoke.main_call

这种方式会让Python将test_invoke识别为完整的Python包,从而正确解析绝对导入路径。


额外注意事项

  • 确保test_invoke目录下的__init__.py文件存在(你的目录中已包含,无需修改),这是Python将目录识别为包的必要条件。
  • invoke.py中的from config import config导入语句是正确的,无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:15:33