如何解决macOS Monterey下Jupyter内核崩溃问题?
解决Jupyter内核崩溃问题(macOS Monterey)
可能的原因与对应修复步骤
1. 锁定依赖库兼容版本
macOS Monterey(12.x)对部分高版本Python库兼容性有限,尤其是iris、geopandas这类依赖底层C库的包:
- 先确认当前Python版本,建议使用3.8或3.9版本(这两个版本在Monterey上稳定性更强),运行命令:
python --version - 重新安装指定兼容版本的库:
pip install iris==3.0.1 geopandas==0.12.2
2. 用conda构建隔离环境
pip安装容易出现底层依赖冲突,conda会自动匹配依赖版本:
conda create -n geo_env python=3.9 conda activate geo_env conda install -c conda-forge iris geopandas
之后在该环境中启动Jupyter,测试代码是否正常运行。
3. 调整内核资源限制
Monterey的内存管理机制可能导致大文件读取时内核崩溃,可通过以下方式限制资源:
- 启动Jupyter前执行:
export OMP_NUM_THREADS=1 export MALLOC_TRIM_THRESHOLD_=0 jupyter notebook - 或者在Notebook开头添加魔法命令:
%env OMP_NUM_THREADS=1
4. 修复系统底层组件
Xcode Command Line Tools损坏或版本过低也可能引发问题:
- 重新安装组件:
xcode-select --install - 重置Xcode路径:
sudo xcode-select -r
5. 排查文件与代码场景
- 先测试最小化代码,确认是库问题还是文件问题:
from iris.cube import Cube print("Iris导入成功") import geopandas as gpd # 替换为一个小型shp文件路径 test_data = gpd.read_file("path/to/small_test.shp") print("Geopandas读取成功") - 如果是原shp文件过大导致内存溢出,尝试分块读取:
REG_data = gpd.read_file("./Shapefiles/Local_Authority_Districts_(December_2019)_Boundaries_UK_BUC.shp", chunksize=100) for chunk in REG_data: print(chunk.head())
内容的提问来源于stack exchange,提问作者Abigail
相关产品推荐
相关产品推荐

