OS X 14.3.1下使用pyenv安装Python 3.8.5失败求助
解决pyenv安装Python 3.8.5时出现"Unexpected output of 'arch' on OSX"错误
问题场景
在OS X 14.3.1系统中,已安装pyenv但执行pyenv install 3.8.5时持续构建失败,错误日志末尾显示:
checking whether pthread_key_t is compatible with int... no configure: error: Unexpected output of 'arch' on OSX make: *** No targets specified and no makefile found. Stop.
此前已尝试重装CommandLineTools:
sudo rm -rf /Library/Developer/CommandLineToolsxcode-select --install
但问题仍未解决。
解决方案
1. 升级pyenv到最新版本
你当前使用的python-build版本是20180424,过于老旧,缺少对新OS X版本的适配补丁。
- 若通过Homebrew安装pyenv:
brew upgrade pyenv - 若通过Git克隆安装pyenv:
cd ~/.pyenv git pull
2. 手动指定架构环境变量
升级后仍失败的话,强制指定架构参数适配系统:
- 对于M系列(ARM架构)Mac:
ARCHFLAGS="-arch arm64" pyenv install 3.8.5 - 若需要兼容x86_64架构:
ARCHFLAGS="-arch x86_64" pyenv install 3.8.5
3. 确保依赖库完整并指定路径
如果上述步骤无效,先安装必要依赖,再指定依赖路径安装:
# 安装依赖 brew install openssl readline zlib # 指定依赖路径并安装Python PYTHON_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl) --with-readline=$(brew --prefix readline) --with-zlib=$(brew --prefix zlib)" ARCHFLAGS="-arch arm64" pyenv install 3.8.5
错误原因
Python 3.8.5的原生配置脚本未适配新OS X版本的arch命令输出(比如M系列Mac输出arm64),导致配置阶段报错。升级pyenv可获取官方适配补丁,手动指定ARCHFLAGS则能强制配置脚本使用正确的架构参数。
内容的提问来源于stack exchange,提问作者Amit S
相关产品推荐
相关产品推荐

