搭载M1芯片的MacOS Big Sur系统无法通过pyenv安装Python 3.8.5?
M1芯片Mac使用pyenv安装Python3.8.5失败的解决方案
核心报错configure: error: Unexpected output of 'arch' on OSX的根因是Python 3.8.10之前的3.8版本未原生适配Apple M1芯片,编译配置脚本无法正确识别M1架构,与可正常安装3.9.6版本的表现吻合,可通过以下三种方案解决:
方案一:使用Rosetta 2转译安装(操作最简单,成功率最高)
- 打开访达,进入「应用程序-实用工具」目录,右键点击「终端」,选择「显示简介」,勾选「使用Rosetta打开」后重启终端
- 执行
xcode-select --install确保Xcode命令行工具已安装,已安装会直接提示已存在,未安装则跟随弹窗完成安装即可 - 直接执行安装命令:
pyenv install 3.8.5 - 安装完成后可取消终端的Rosetta勾选,后续使用Python3.8.5无需持续开启Rosetta,绝大多数场景兼容无问题
方案二:手动指定编译参数原生安装(无需开启Rosetta)
- 先安装依赖包:
brew install openssl@1.1 readline zlib bzip2 sqlite3 - 执行带环境变量的安装命令:
CFLAGS="-I$(brew --prefix openssl@1.1)/include -I$(brew --prefix readline)/include -I$(brew --prefix zlib)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix sqlite3)/include" \ LDFLAGS="-L$(brew --prefix openssl@1.1)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib -L$(brew --prefix sqlite3)/lib" \ PYTHON_CONFIGURE_OPTS="--enable-framework --with-openssl=$(brew --prefix openssl@1.1) --build=x86_64-apple-darwin$(uname -r)" \ pyenv install 3.8.5
方案三:升级Python3.8小版本(无需额外配置,推荐适配性要求不高的场景)
Python3.8.10及之后的3.8版本已修复Apple Silicon适配问题,可直接原生安装,且和3.8.5的功能、兼容性几乎无差异,绝大多数第三方依赖都可正常运行:
- 直接执行安装命令:
pyenv install 3.8.10
安装后验证
安装完成后执行pyenv rehash刷新版本索引,可通过pyenv versions查看已安装的Python版本,按需使用pyenv local 版本号或pyenv global 版本号切换对应版本即可。
内容的提问来源于stack exchange,提问作者ponybear
相关产品推荐
相关产品推荐

