如何在Python中编辑调试自定义库并在Jupyter中实时生效?
本地开发Python库时Jupyter实时生效解决方案
最简便的临时方案
在你当前使用的Jupyter Notebook的首个代码单元格中执行以下两条魔法命令即可:
%load_ext autoreload %autoreload 2
- 配置说明:
%load_ext autoreload是加载IPython自带的自动重载扩展%autoreload 2表示每次执行任意代码前,都会自动重载所有已经导入的外部模块
配置完成后,你修改库内.py文件的内容后,不需要重启Jupyter内核,直接运行新的代码即可加载修改后的逻辑。
注意事项
- 已经实例化的类对象不会自动更新,如果你修改了类的定义,需要重新实例化对应对象才能生效
- 如修改的是C扩展、动态生成代码、带特殊装饰器的代码,可能出现重载失效的情况,此时临时重启内核即可
- 如果你只希望重载指定模块,可以使用
%aimport 你的模块名命令单独配置
永久生效配置(可选)
如果希望所有新建的Jupyter Notebook默认开启自动重载,可以修改IPython全局配置:
- 终端执行命令生成默认配置文件:
ipython profile create - 打开生成的配置文件:
- Windows路径:
C:\Users\你的用户名\.ipython\profile_default\ipython_config.py - macOS/Linux路径:
~/.ipython/profile_default/ipython_config.py
- Windows路径:
- 找到以下两行配置,取消注释并修改为对应值:
c.InteractiveShellApp.extensions = ['autoreload'] c.InteractiveShellApp.exec_lines = ['%autoreload 2']
保存后重启Jupyter即可全局生效。
内容的提问来源于stack exchange,提问作者Rathan
相关产品推荐
相关产品推荐

