MacOS M1芯片Python3.6安装numpy失败的技术求助
解决Mac M1(Ventura 13.4.1)下Python3.6.15安装numpy时clang不支持'-faltivec'的问题
问题原因
Python3.6是适配x86架构的旧版本,numpy在编译时会默认添加x86专属的-faltivec编译参数,但M1芯片的clang编译器不支持这个ARM架构不兼容的选项,导致编译失败。纯Python包(如pytest)无需编译,因此可以正常安装。
解决方案
方法1:临时设置环境变量跳过不兼容编译选项
执行以下命令,先设置适配ARM的编译参数并禁用ALTIVEC特性,再安装兼容Python3.6的numpy版本:
export NPY_DISABLE_CPU_FEATURES=ALTIVEC export CFLAGS="-arch arm64 -Wno-error=implicit-function-declaration" pip install numpy==1.19.5 --no-cache-dir
注:numpy 1.19.5是支持Python3.6的最后几个稳定版本之一,更高版本已不再兼容Python3.6。
方法2:重新编译适配ARM的Python3.6.15
如果方法1无效,先通过pyenv重新安装适配M1的Python3.6.15:
env PYTHON_CONFIGURE_OPTS="--enable-universalsdk=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk --with-universal-archs=arm64" pyenv install 3.6.15
安装完成后切换到该版本,再执行方法1的pip安装命令。
验证安装
进入Python交互环境,执行以下命令确认numpy正常工作:
import numpy print(numpy.__version__)
内容的提问来源于stack exchange,提问作者K--
相关产品推荐
相关产品推荐

