
Google Colab 不支持直接 import notebook_name,需先将目标 Notebook 导出为 .py 文件,再通过标准 Python 方式导入;本文详解完整流程、常见错误规避及实用技巧。
google colab 不支持直接 `import notebook_name`,需先将目标 notebook 导出为 `.py` 文件,再通过标准 python 方式导入;本文详解完整流程、常见错误规避及实用技巧。
在 Google Colab 中,无法像普通 Python 模块一样直接导入 .ipynb 文件(例如 from NB2 import *),这是因为 Jupyter/Colab 的 notebook 并非原生 Python 模块——它本质是 JSON 格式的文档,需经解析和编译才能执行。你遇到的 ModuleNotFoundError: No module named 'NB2' 正源于此:Python 解释器根本不会自动将 .ipynb 文件识别为可导入模块,即使它们位于同一目录或已添加到 sys.path。
✅ 正确做法是:将目标 Notebook(如 NB2.ipynb)转换为标准 .py 文件,再导入。Colab 提供了便捷的一键导出功能:
-
打开
NB2.ipynb(即你想被导入的那个 notebook); - 点击顶部菜单栏 →
File→Download→Download .py; - 此时浏览器会下载一个名为
NB2.py的纯 Python 脚本(注意:文件名自动去除了.ipynb后缀,且保留原始代码单元的执行顺序); - 在
NB1.ipynb中,上传该.py文件:from google.colab import files uploaded = files.upload() # 选择刚下载的 NB2.py
或更推荐的方式——挂载 Google Drive 并统一管理:
from google.colab import drive drive.mount('/content/drive') # 假设你将 NB2.py 保存在:/content/drive/MyDrive/Colab Notebooks/NB2.py import sys sys.path.append('/content/drive/MyDrive/Colab Notebooks') from NB2 import * # ✅ 现在可以成功导入
⚠️ 注意事项:
-
.py文件中仅保留# In[...]之前的可执行代码(即所有codecell 的内容),Markdown、输出、图表等均被忽略; - 若
NB2.ipynb中定义了函数/类/变量但未显式执行(例如被注释或条件屏蔽),它们不会出现在.py中;务必确保关键定义单元已运行过再导出; - 避免使用
import nbimporter等第三方方案——它在 Colab 环境中兼容性差、易报错,且不被官方支持; - 如需动态重载更新后的
NB2.py,可配合importlib.reload():import importlib import NB2 importlib.reload(NB2)
? 小结:Colab 的“Notebook 导入”本质是代码复用,而非结构化模块引用。优先将稳定、通用的逻辑封装为 .py 工具库,再通过 Drive 统一维护——这比频繁导出更高效,也更贴近工程实践。


















