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

Jupyter Notebook导入自定义模块报ModuleNotFoundError如何解决

Jupyter Notebook无法导入自定义模块排查方案

以下按问题出现概率从高到低排序,逐点排查即可解决:

  • 内核环境不匹配:这是90%同类问题的根因。哪怕你看到sys.path包含当前工作目录、os.listdir()能列到模块文件,只要Jupyter运行的内核不是你存放模块的Python环境,就会导入失败。先在代码单元格执行以下命令确认解释器路径:
import sys
print(sys.executable)

如果输出的路径不是你日常开发存放自定义模块所用的Python/虚拟环境路径,点击顶部菜单栏Kernel-Change Kernel切换到对应环境即可。如果找不到对应环境的内核选项,先在目标环境的命令行执行python -m ipykernel install --user --name=你的自定义环境名,重启Jupyter后就能看到对应选项。

  • 文件本身不符合导入要求:
    1. 检查自定义模块文件名是否和Python内置模块、已安装的第三方库重名,比如不要把自己的脚本命名为numpy.py、os.py,会触发命名冲突导致导入失败。
    2. Windows系统默认会隐藏已知文件扩展名,很容易出现文件实际名为mymodule.py.txt、但资源管理器里只显示mymodule.py的情况,os.listdir()如果没配置显示全后缀也会误导判断,一定要在文件管理器里开“显示文件扩展名”选项确认后缀确实是.py。
  • 文件权限异常:Linux/macOS环境下,如果自定义模块文件没有配置当前用户的读权限,Jupyter内核进程无法读取文件内容也会导入失败,在对应目录终端执行chmod +r 你的模块文件名.py给文件加读权限即可。
  • 导入缓存未清理:如果之前导入模块失败过,Jupyter会缓存失败状态,后续哪怕修复了问题也不会自动重新扫描模块,直接点Kernel-Restart Kernel重启内核清空缓存后再重新导入即可。如果需要频繁修改自定义模块代码,可以在笔记本最开头加以下配置开启自动重载,改完代码不用重启内核就能生效:
%load_ext autoreload
%autoreload 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:00:53