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

Python模块与数据目录存储及导入失败问题求助

解决import stuff.mod时的ModuleNotFoundError问题

首先咱们得搞清楚问题出在哪:当你在项目根目录启动IPython,执行import stuff.mod时,Python会去sys.path里找模块,而sys.path默认包含当前工作目录(也就是你的项目根目录)。但mod.py里写的from stuff_data import paper是在找根目录下的stuff_data.py,可这个文件实际在stuff子文件夹里,自然就找不到了。

下面给你两种靠谱的解决办法:

一、修改导入语句(推荐,无需调整目录结构)

你的目录结构已经是标准的Python包结构(有__init__.py),只需要修改mod.py里的导入方式就行:

1. 使用绝对导入

把mod.py里的导入语句改成:

from stuff.stuff_data import paper

这样Python会明确从根目录下的stuff包中查找stuff_data模块,完全符合Python的包导入规则。

2. 使用相对导入

也可以用相对路径来引用同包内的模块,把mod.py的导入语句改成:

from .stuff_data import paper

这里的.代表当前模块所在的包(也就是stuff文件夹),适用于同包内的模块引用,结构清晰。

二、替代解决方案(不修改代码的临时办法)

如果暂时不想改代码,可以手动把stuff目录添加到sys.path中,让Python能找到stuff_data.py:
在IPython会话中先执行:

import sys
sys.path.append("./stuff")

之后再执行import stuff.mod就可以正常运行了。不过这个方法不推荐长期使用,因为可能会引发命名冲突,也不符合Python包的规范用法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 15:22:55