Jupyter导入自定义模块及导入后TypeError错误问题及解决
Jupyter导入自定义模块方法
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文件导入方法相同
2.不同目录导入方法
如果将要导入的a.ipynb文件和要执行的文件b.ipynb不在同一目录下,
即这时候的文件目录为:
A
a.ipynb
B
b.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 scrapy框架中Request对象和Response对象的介绍
本文介绍了python基础之scrapy框架中Request对象和Response对象的介绍,Request对象主要是用来请求数据,爬取一页的数据重新发送一个请求的时候调用,Response对象一般是由scrapy给你自动构建的,因此开发者不需要关心如何创建Response对象,下面来一起来了解更多内容吧2022-02-02Python Selenium 之关闭窗口close与quit的方法
今天小编就为大家分享一篇Python Selenium 之关闭窗口close与quit的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-02-02浅谈django开发者模式中的autoreload是如何实现的
下面小编就为大家带来一篇浅谈django开发者模式中的autoreload是如何实现的。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-08-08
最新评论