Mac M1设备conda安装numpy后导入报libcblas.3.dylib缺失如何解决
Mac M1 设备numpy导入报错修复方案
错误根本原因是numpy依赖的libcblas.3.dylib线性代数库动态链接文件丢失,一般由conda环境依赖被意外改动、包架构不匹配导致,可按以下步骤依次尝试修复:
方案1:重装openblas与numpy依赖
libcblas属于openblas的组件,优先修复依赖关联:
- 激活对应conda环境:
conda activate python386 - 卸载现有numpy和openblas包:
conda uninstall numpy openblas - 清理conda本地缓存避免旧包干扰:
conda clean -a - 重新安装对应版本numpy,会自动补全关联依赖:
conda install numpy==1.21.1(可替换为你需要的1.19.5等其他版本) - 测试修复结果:执行
python -c "import numpy; print(numpy.__version__)",无报错即为修复成功
方案2:校验conda环境架构适配
如果方案1无效,大概率是环境架构不匹配导致的依赖异常:
- 执行命令检查当前conda环境的默认架构:
conda config --show subdir - Mac M1设备正常输出应为
osx-arm64,如果输出为osx-64说明环境使用了x86架构的包源,会出现兼容问题 - 给当前环境设置正确架构:
conda config --env --set subdir osx-arm64 - 重复方案1的重装步骤即可
方案3:备用修复手段
如果前两个方案都不生效,可尝试以下操作:
- 先卸载conda安装的numpy:
conda uninstall numpy - 使用适配Apple Silicon的pip安装对应版本:
pip install numpy==1.21.1 - 若仍提示动态库找不到,可临时添加库路径测试:
export DYLD_LIBRARY_PATH=/Users/ulto4/miniforge3/envs/python386/lib:$DYLD_LIBRARY_PATH,测试导入正常后可将该命令写入shell配置文件(/.zshrc或/.bashrc)持久生效
内容的提问来源于stack exchange,提问作者Ulto 4
相关产品推荐
相关产品推荐

