Jupyter Notebook导入自定义模块及解决TypeError错误的方法

苏见山
苏见山
发布时间:2026-10-16 | 3人浏览过
原创

本文介绍在Jupyter Notebook中导入自定义模块的两种方法:同目录直接导入和跨目录通过sys.path导入。同时针对导入后出现的TypeError错误,分析其原因为模块修改后未刷新内核,并提供保存并重启内核的解决方案。

在Jupyter Notebook中导入自定义模块的方法

1. 相同目录下的导入方法

假设当前目录结构如下:

A a.ipynb b.ipynb

现在需要在b.ipynb中导入a.ipynb定义的函数和类。

具体导入步骤如下:

首先将a.ipynb下载为a.py文件(下载方法见下图),并将其放置在与b.ipynb相同的目录下。

此时文件目录结构变为:

A a.py a.ipynb b.ipynb

注意:下载路径取决于浏览器设置,需手动将下载好的文件移动到目标目录。

此时可以在b.ipynb中直接使用以下代码导入a.py文件:

import a

其他导入规则与普通.py文件的导入方式相同。

另一种直接导入.ipynb的方法

2. 不同目录下的导入方法

如果要导入的a.ipynb文件与执行文件b.ipynb不在同一目录下,

即当前文件目录为:

A a.ipynb
B b.ipynb

同样,先将a.ipynb下载为a.py文件,此时文件路径变为:

A a.py a.ipynb
B b.ipynb

此时导入a.py的方法为:

在b.ipynb中先加载a.py所在的目录(即目录A),这里使用相对路径:

import sys
sys.path.insert(0, "./../A/")

此时即可正常导入a.py文件。

import a

TypeError错误解决办法

注:此处特指导入模块后出现的报错,与其他情况下的TypeError不同。

首先确认函数形参和实参的数量及类型是否对应。如果对应无误,解决方法为:

保存当前.ipynb文件,然后在Running中关闭该文件,重新打开并运行。

错误说明:

该错误通常由以下原因引起:被导入模块的代码被修改,例如被导入模块(即.py文件)中的某个函数原本没有形参。

此时已执行import该模块,然后执行后发现该模块中的某个函数需要一个形参,于是去.py文件中加入形参并保存。

此时再去Jupyter执行该函数,明明形参和实参数量、类型等均对应,但仍会报TypeError错误。

此时并非代码错误,而是Jupyter本身的机制问题,即无法实时更新已加载的模块内容。按照加粗红体字的解决办法即可解决。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表