MacOS下Jupyter Notebook导入torch出现ImportError的解决方法
错误原因分析
这个ImportError的核心问题是PyTorch依赖的libomp.dylib库与你的MacOS版本不兼容:
- 新版PyTorch使用了仅在高版本MacOS(如Monterey 12.0+)支持的Mach-O加载命令(0x80000034),如果你的系统版本较低,无法识别该命令,导致库加载失败。
- pip默认安装的PyTorch通常是针对最新MacOS编译的,未考虑旧系统的兼容性。
解决方法
方法一:安装适配旧系统的PyTorch版本
针对Python 3.9,安装对旧MacOS兼容的PyTorch版本(比如1.12.x系列),执行以下命令:
pip3 install torch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1
方法二:手动替换兼容的libomp库
- 用Homebrew安装系统兼容的libomp:
brew install libomp
- 设置环境变量让Python优先加载这个兼容库:
- 临时生效:在终端执行
export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH - 永久生效:打开
~/.zshrc(或~/.bash_profile,取决于你的默认shell),添加上述命令,然后执行source ~/.zshrc重启终端,再重新打开Jupyter Notebook。
- 临时生效:在终端执行
方法三:确保Python环境一致性
检查Jupyter Notebook使用的Python解释器是否和你安装PyTorch的解释器一致:
- 在Jupyter Notebook中运行:
import sys print(sys.executable)
- 在终端运行
which python3,对比两个路径。如果不一致,需要将Jupyter内核切换到安装了PyTorch的Python环境:
python3 -m ipykernel install --user --name=python3-torch
然后在Jupyter中选择这个新内核运行代码。
内容的提问来源于stack exchange,提问作者Marium Ema
相关产品推荐
相关产品推荐

