我们可以在一个新的python模块上工作,并在jupyter notebook环境中测试它。但是当模块的代码发生变化时,必须在笔记本环境中重新加载模块。
一种简单的解决方案:使用autoreload来确保使用的是模块的最新版本。
我们可以通过以下方式来重新加载最新模块
%load_ext autoreload
%autoreload 2
每次执行一些代码时,IPython都会重新导入所有模块,以确保使用的是可能的最新版本。
有三个配置选项
%autoreload 0 | 不执行重新加载命令。 |
%autoreload 1 | 只重新加载所有 %aimport 要加载的模块 |
%autoreload 2 | 重新加载 除了%aimport 要加载的模块 |
%aimport | 列出要自动加载或不自动加载的模块。 |
%aimport foo | 自动加载模块 foo |
%aimport -foo | 不自动加载模块foo |
使用举例
比如我们的notebook 出现了如下几行warning(绿框框起来的部分)
这就是因为不同版本的PyGEOS可能会导致运行较慢。
我们加上
%load_ext autoreload
%autoreload 2
之后,就没有warning了,执行的速度也变快了
参考资料 :Autoreload a module — Mastering JupyterLab (nocomplexity.com)