macOS M1芯片下先导pandas再导torch致内核崩溃求助
问题场景
在搭载M1芯片的macOS 12.5.1系统中,使用pandas 2.0.0、PyTorch 2.0.0时出现导入顺序相关的内核崩溃问题:
- 先导入
torch再导入pandas,代码运行正常:import torch import pandas as pd - 先导入
pandas再导入torch,Jupyter Notebook内核会直接重启,相关日志:[W 02:29:35.424 NotebookApp] Timeout waiting for kernel_info_reply: 4c1d9909-7259-438e-8511-dab91e7d774c
[I 02:29:35.923 NotebookApp] KernelRestarter: restarting kernel (1/5), new random ports
kernel 5ba31d92-445a-42b5-8c03-76ea14c3db97 restarted
[I 02:29:38.006 NotebookApp] Kernel interrupted: 5ba31d92-445a-42b5-8c03-76ea14c3db97
已尝试卸载Python、更换虚拟环境、重装依赖包,问题仍未解决。
可行解决方案
降级依赖版本:新版本的pandas和PyTorch在M1架构下可能存在兼容性冲突,尝试降级到经过验证的稳定版本:
pip install pandas==1.5.3 torch==1.13.1安装完成后重新测试导入顺序。
设置M1专属环境变量:在终端中先执行以下命令,再启动Jupyter,强制适配ARM架构并规避fork安全问题:
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES export PYTHONPATH=/opt/homebrew/lib/python3.9/site-packages:$PYTHONPATH # 替换python3.9为你的Python实际版本 jupyter notebook排查Jupyter环境问题:先验证问题是否只在Jupyter中出现:
- 创建测试脚本
test_import.py,内容如下:import pandas as pd import torch print("导入成功,无崩溃") - 在终端运行
python test_import.py,如果正常输出,说明问题出在Jupyter配置:- 重装Jupyter:
pip uninstall jupyter -y && pip install jupyter - 创建全新虚拟环境并添加为Jupyter内核:
打开Jupyter后选择# 需先安装适配M1的miniforge3 conda create -n m1_env python=3.9 conda activate m1_env pip install pandas torch jupyter ipykernel python -m ipykernel install --user --name m1_env --display-name "M1 Test Env"M1 Test Env内核重新测试。
- 重装Jupyter:
- 创建测试脚本
使用conda安装依赖:conda针对M1芯片提供了优化的预编译包,兼容性更好:
# 先卸载pip安装的版本 pip uninstall pandas torch -y # 用conda安装稳定版本 conda install pandas=1.5.3 torch=1.13.1 -c pytorch -c conda-forge
内容的提问来源于stack exchange,提问作者hir0
相关产品推荐
相关产品推荐

