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

如何正确导入Jupyter Notebook以实现文件内函数互相调用?

解决Jupyter Notebook导入自定义ipynb时函数互相调用报错的问题

方法1:确保被导入笔记本的函数处于全局作用域

在othernb.ipynb中,函数A和B必须定义在全局命名空间,不能嵌套在局部代码块(比如if __name__ == "__main__":这类判断里)。示例写法:

# othernb.ipynb 正确定义方式
def B():
    return "来自函数B的返回值"

def A():
    # 直接调用全局作用域的B
    return f"A调用了:{B()}"

如果把B放在局部块内,导入时该函数不会被加载到模块的全局空间,调用A时自然会提示B未定义。

方法2:规范使用import_ipynb的导入流程

  1. 先安装依赖(未安装时执行):
pip install import_ipynb
  1. 确保othernb.ipynb和当前笔记本在同一目录下,按以下方式导入:
import import_ipynb
import othernb

# 调用时需带上模块前缀
othernb.A()

如果用from导入,同样要保证B在全局作用域:

from othernb import A
A()

方法3:更稳定的替代方案——转为py文件导入

若import_ipynb仍有兼容问题,可将othernb.ipynb转为Python脚本:

  1. 打开othernb.ipynb,点击File -> Download as -> Python (.py),生成othernb.py文件。
  2. 在主笔记本中直接导入:
import othernb
othernb.A()

这种方式依托Python原生模块机制,作用域逻辑更清晰,能避免多数调用问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:35:33