PyCharm中修改导入模块代码后如何刷新Jupyter 解决内核不识别变更问题
PyCharm Jupyter Notebook 相关问题解决方案
1. 修复「Notebook kernel doesn't match Project interpreter」警告
该警告和模块更新不生效问题高度相关,内核与项目解释器不一致时,你修改的本地模块不会被内核读取,修复步骤如下:
- 打开PyCharm设置:Windows端走
File → Settings,macOS端走PyCharm → Settings,定位到Project: 你的项目名称 → Python Interpreter,复制当前项目解释器的完整路径 - 回到Jupyter Notebook编辑页,点击右上角当前内核名称,下拉选择和项目解释器路径完全一致的内核即可;如果下拉列表没有对应选项,打开终端执行命令
ipython kernel install --user --name=自定义内核名,按提示绑定刚才复制的项目解释器路径,重启PyCharm后重新选择对应内核即可
2. 解决导入外部模块更新后不生效问题
该问题是Python默认的模块导入缓存机制导致的,不需要重启Jupyter Server,两种解决方案可选:
方案A:全局自动重载(推荐)
在Notebook的首个代码单元格执行以下魔法命令,之后所有导入的外部模块修改后会自动重载,无需额外操作:
%load_ext autoreload %autoreload 2
参数说明:
%autoreload 2代表每次执行新代码前,自动重载所有已导入的非标准库模块,适配绝大多数日常开发场景
方案B:手动重载指定模块
如果仅需要更新个别模块,不想开启全局自动重载,可使用importlib手动重载指定模块:
import importlib import your_module # 替换为你修改过的模块名 your_module = importlib.reload(your_module)
每次修改模块后执行一次上述重载代码即可生效。
内容的提问来源于stack exchange,提问作者Shaharg
相关产品推荐
相关产品推荐

