本文已参与「新人创作礼」活动,一起开启掘金创作之路。
@[toc]
自动更新导入的自定义模块
ref:
一日一技:在 Jupyter 中如何自动重新导入特定的 模块?
出现的问题:
当自定义模块的功能逻辑发生变化时,运行中的jupyter notebook不会自动导入已更新过的模块,它只会保留最先运行时的模块
解决办法:
-
手动控制重新导入,作用当前所在Cell,因此不是很方便
importlib.reload(xx_module) -
自动重新导入特定模块,作用整个ipynb,要求放在第一次使用该模块之前
%load_ext autoreload %autoreload 1 %aimport analyze第1行启动autoreload机制。第2行,设置自动加载通过%aimport导入的模块。第3行使用%aimport导入analyze模块。
-
自动重新导入所有模块,作用整个ipynb,最好放在最开头,能在每个Cell运行时都重新导入一次所有模块
%load_ext autoreload %autoreload 2%autoreload后面的参数被设置为2时,每次运行任意一个 Cell,都会自动重新加载所有import xxx导入的模块。这样做的代价是,运行会慢一些。