M1 Mac Pro无法使用scikit-learn包 导入报错求解决方案
M1 Mac Pro安装sklearn后ImportError修复方案
问题根源
报错核心是scipy依赖的liblapack.3.dylib线性代数库未被conda环境正确识别,M1架构下混装brew、pip、conda的科学计算包时,容易出现编译链接架构不匹配的问题。
修复步骤
- 第一步:先清理现有损坏的相关包
首先激活目标conda环境:conda activate tensorflow
依次卸载pip和conda安装的冲突包:pip uninstall -y scikit-learn scipy numpy conda uninstall -y scikit-learn scipy numpy openblas lapack - 第二步:安装适配M1架构的基础依赖库
从conda-forge源安装匹配arm64架构的线性代数库:conda install -c conda-forge openblas lapack - 第三步:配置编译环境变量
让pip后续编译包时能正确找到openblas路径,补全之前缺失的编译参数:export OPENBLAS=$(/opt/homebrew/bin/brew --prefix openblas) export CFLAGS="-falign-functions=8 ${CFLAGS}" export CPPFLAGS="-I${OPENBLAS}/include ${CPPFLAGS}" export LDFLAGS="-L${OPENBLAS}/lib ${LDFLAGS}" - 第四步:重新安装scikit-learn及依赖
禁用缓存重新编译安装相关包,避免复用之前的损坏安装包:pip install --no-cache-dir numpy scipy scikit-learn
备选极简方案
如果上述步骤仍有问题,直接全用conda安装适配好的预编译包,无需手动编译:conda install -c conda-forge scikit-learn
验证方法
安装完成后执行以下命令,无报错输出版本号即为修复成功:python -c "import sklearn; print(sklearn.__version__)"
注意事项
conda环境下优先使用conda-forge源安装科学计算包,避免混用brew、pip安装底层依赖类库,减少架构不匹配的链接错误。
内容的提问来源于stack exchange,提问作者Ujwal Nagulapalli
相关产品推荐
相关产品推荐

