M1 Mac下Jupyter Notebook内核无法启动问题求助
Jupyter Notebook内核无法启动(架构不兼容问题)
此前Jupyter Notebook运行正常,近期出现异常:终端执行jupyter notebook可正常启动,但打开笔记本文件时内核无法启动,循环报错。错误日志如下:
[I 15:42:03.029 NotebookApp] KernelRestarter: restarting kernel (5/5), new random ports Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/ipykernel_launcher.py", line 15, in <module> from ipykernel import kernelapp as app File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/ipykernel/kernelapp.py", line 52, in <module> from .ipkernel import IPythonKernel File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/ipykernel/ipkernel.py", line 20, in <module> from .comm.comm import BaseComm File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/ipykernel/comm/__init__.py", line 3, in <module> from .comm import Comm File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/ipykernel/comm/comm.py", line 14, in <module> from ipykernel.kernelbase import Kernel File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/ipykernel/kernelbase.py", line 35, in <module> import psutil File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/psutil/__init__.py", line 123, in <module> from . import _psosx as _psplatform File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/psutil/_psosx.py", line 13, in <module> from . import _psposix File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/psutil/_psposix.py", line 28, in <module> from . import _psutil_osx ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/psutil/_psutil_osx.abi3.so, 0x0002): tried: '/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/psutil/_psutil_osx.abi3.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/psutil/_psutil_osx.abi3.so' (no such file), '/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/psutil/_psutil_osx.abi3.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))
环境信息
- M1 Mac
- 执行
where jupyter输出:
/Users/username/anaconda3/bin/jupyter /Library/Frameworks/Python.framework/Versions/3.11/bin/jupyter
此前仅安装过sympy,卸载后问题依旧;尝试用conda重装JupyterLab时提示包缺失。
解决建议
1. 修复psutil架构不兼容问题
错误核心是psutil二进制文件为arm64架构,但当前Python环境运行在x86_64模式(可能通过Rosetta)。针对/Library/Frameworks下的Python3.11环境,重新编译安装psutil:
pip uninstall -y psutil # 强制以当前架构编译安装psutil ARCHFLAGS="-arch $(uname -m)" pip install --no-binary :all: psutil
2. 统一Jupyter环境,消除多版本冲突
系统存在两个Jupyter安装路径,优先使用conda环境版本:
- 激活conda基础环境:
conda activate base - 确认当前Jupyter路径为conda版本:
需输出which jupyter/Users/username/anaconda3/bin/jupyter - 重装conda环境下的Jupyter相关包:
conda uninstall -y jupyter jupyterlab ipykernel conda install jupyterlab ipykernel - 将conda环境内核注册到Jupyter:
python -m ipykernel install --user --name base --display-name "Python (base)"
3. 验证Python环境架构
确认当前Python环境运行架构:
python -c "import platform; print(platform.machine())"
若输出x86_64,说明环境通过Rosetta运行x86版本。若想使用原生arm64环境,建议安装M1原生支持的conda版本,并迁移原有包到新环境。
4. 清理冗余Python环境
若/Library/Frameworks下的Python3.11不再需要,可卸载以避免冲突:
sudo rm -rf /Library/Frameworks/Python.framework/Versions/3.11 sudo rm -rf /usr/local/bin/python3.11 sudo rm -rf /usr/local/bin/pip3.11
内容的提问来源于stack exchange,提问作者sdar19
相关产品推荐
相关产品推荐

