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

执行自定义Python包时触发ModuleNotFoundError报错该如何解决

问题排查与解决方案

核心报错原因

你遇到的ModuleNotFoundError: No module named 'Mod1'是因为__init__.py里的导入写法错误:Python默认会从执行脚本(也就是Packuse.py)所在的目录、以及sys.path注册的路径查找模块,你直接写import Mod1时,Python不会自动去SamplePack包文件夹内查找对应模块,因此找不到文件。

修复步骤

第一步:修正__init__.py的导入逻辑

二选一即可,优先选相对导入:

  • 方案1:包内相对导入(无需硬编码包名,迁移更灵活)
from . import Mod1
from . import Mod2
  • 方案2:带包名的绝对导入
from SamplePack import Mod1
from SamplePack import Mod2

第二步:修复其他隐藏的代码错误

解决导入问题后,你还会遇到其他运行报错,同步修改即可:

  1. 函数名不匹配:Mod2中定义的开平方函数是sqroot,但Packuse.py里调用的是sp.Mod2.sqrt(30),二者需统一,比如将调用改为sp.Mod2.sqroot(30)
  2. input参数错误:Mod1中的input("Great", x, "What's your phone number? ")写法错误,input仅支持1个提示字符串参数,改为字符串拼接即可,比如:
y = input(f"Great {x}, What's your phone number? ")
  1. 函数名冲突:Mod2中自定义的cos函数和你从math导入的cos重名,调用时会触发无限递归报错,建议将自定义函数改名为cosine
  2. 文件名大小写一致:你执行命令是python packuse.py,但实际文件名为Packuse.py,Windows系统不区分大小写可正常运行,Linux/macOS系统会报错,建议保持文件名和执行命令的大小写统一

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:39:00