重装TensorFlow后仍无法导入,Jupyter/VSCode内核崩溃求助
问题概述
在Jupyter Notebook和VSCode中导入TensorFlow时,内核频繁崩溃,报错:
Canceled future for execute_request message before replies were done
The Kernel crashed while executing code in the the current cell or a previous cell. Please review the code in the cell(s) to identify a possible cause of the failure. Click here for more info. View Jupyter log for further details.
已尝试通过pip install tensorflow和python3 -m pip install tensorflow卸载重装TensorFlow,无效;TensorFlow在Colab中运行正常,本地Anaconda环境下TensorFlow 2.12.0安装在/Users/hanyusu/opt/anaconda3/lib/python3.9/site-packages,依赖项齐全。
报错日志
15:55:19.800 [error] Error in waiting for cell to complete [Error: Canceled future for execute_request message before replies were done at t.KernelShellFutureHandler.dispose (~/.vscode/extensions/ms-toolsai.jupyter-2023.4.1011241018-darwin-arm64/out/extension.node.js:2:32419) at ~/.vscode/extensions/ms-toolsai.jupyter-2023.4.1011241018-darwin-arm64/out/extension.node.js:2:51471 at Map.forEach (<anonymous>) at v._clearKernelState (~/.vscode/extensions/ms-toolsai.jupyter-2023.4.1011241018-darwin-arm64/out/extension.node.js:2:51456) at v.dispose (~/.vscode/extensions/ms-toolsai.jupyter-2023.4.1011241018-darwin-arm64/out/extension.node.js:2:44938) at ~/.vscode/extensions/ms-toolsai.jupyter-2023.4.1011241018-darwin-arm64/out/extension.node.js:24:105531 at te (~/.vscode/extensions/ms-toolsai.jupyter-2023.4.1011241018-darwin-arm64/out/extension.node.js:2:1587099) at Zg.dispose (~/.vscode/extensions/ms-toolsai.jupyter-2023.4.1011241018-darwin-arm64/out/extension.node.js:24:105507) at nv.dispose (~/.vscode/extensions/ms-toolsai.jupyter-2023.4.1011241018-darwin-arm64/out/extension.node.js:24:112790) at process.processTicksAndRejections (node:internal/process/task_queues:96:5)] 15:55:19.801 [warn] Cell completed with errors { message: 'Canceled future for execute_request message before replies were done' } 15:55:19.801 [warn] Cancel all remaining cells due to cancellation or failure in execution
解决方案
1. 用Anaconda重新安装TensorFlow,避免依赖冲突
卸载现有TensorFlow:
pip uninstall -y tensorflow
通过conda安装匹配版本的TensorFlow,conda会自动处理依赖兼容性:
conda install tensorflow=2.12.0
安装完成后,先在终端验证环境是否正常:
python -c "import tensorflow as tf; print(tf.__version__)"
如果终端能正常输出版本号,说明环境本身无问题,问题出在Jupyter/VSCode的内核配置。
2. 重置并关联正确的Jupyter内核
确保Anaconda环境的内核被正确注册到Jupyter:
python -m ipykernel install --user --name=base
(如果你的Anaconda环境不是base,替换为对应环境名)
重启VSCode/Jupyter,在右下角切换内核到你的Anaconda环境(路径为/Users/hanyusu/opt/anaconda3/bin/python),然后执行Kernel -> Restart & Clear Output清除缓存。
3. 检查系统资源与GPU内存配置
如果是M系列Mac,TensorFlow启动时可能因GPU内存分配问题崩溃,导入前添加内存增长配置:
import tensorflow as tf gpus = tf.config.list_physical_devices('GPU') if gpus: try: tf.config.experimental.set_memory_growth(gpus[0], True) except RuntimeError as e: print(e)
如果是CPU环境,关闭其他占用大量内存的进程,确保TensorFlow有足够内存启动。
4. 排查依赖版本冲突
执行conda list查看环境中所有包的版本,重点检查以下TF核心依赖:
- numpy:需与TensorFlow 2.12.0兼容(推荐1.21.x-1.23.x版本)
- protobuf:需为3.20.x或更低版本(TF 2.12.0不支持过高版本的protobuf)
- keras:需与TF版本一致(TF 2.12.0对应keras 2.12.0)
如果发现版本不匹配,手动调整:
conda install numpy=1.23.5 protobuf=3.20.3 keras=2.12.0
内容的提问来源于stack exchange,提问作者Hanyu Su

