MacOS下Pyenv无法编译安装Python版本——疑似系统/架构检测错误?
Pyenv 在 macOS 14.6.1 安装 Python 失败(含 python.exe 路径错误及 SIGABRT 信号问题)
在 macOS 14.6.1 系统中使用 Pyenv 安装任意 Python 版本(如 3.10、3.9)均失败,报错中出现 python.exe 路径(不符合 macOS 命名规范),推测是系统版本/架构检测异常。已重装 Xcode 命令行工具、Homebrew,检查过 Pyenv 配置,仍无法解决。
执行命令及报错信息
jbethune@JB-MBP ~> pyenv install 3.10 python-build: use openssl from homebrew python-build: use readline from homebrew Downloading Python-3.10.14.tar.xz... -> https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tar.xz Installing Python-3.10.14... python-build: use readline from homebrew python-build: use zlib from xcode sdk BUILD FAILED (OS X 14.6.1 using python-build 20180424) Inspect or clean up the working tree at /var/folders/fd/s_hgh6h15_920prcs17cn_qw0000gn/T/python-build.20240905225926.76590 Results logged to /var/folders/fd/s_hgh6h15_920prcs17cn_qw0000gn/T/python-build.20240905225926.76590.log Last 10 log lines: File "/private/var/folders/fd/s_hgh6h15_920prcs17cn_qw0000gn/T/python-build.20240905225926.76590/Python-3.10.14/Lib/ensurepip/__init__.py", line 287, in _main return _bootstrap( File "/private/var/folders/fd/s_hgh6h15_920prcs17cn_qw0000gn/T/python-build.20240905225926.76590/Python-3.10.14/Lib/ensurepip/__init__.py", line 203, in _bootstrap return _run_pip([*args, *_PACKAGE_NAMES], additional_paths) File "/private/var/folders/fd/s_hgh6h15_920prcs17cn_qw0000gn/T/python-build.20240905225926.76590/Python-3.10.14/Lib/ensurepip/__init__.py", line 104, in _run_pip return subprocess.run(cmd, check=True).returncode File "/private/var/folders/fd/s_hgh6h15_920prcs17cn_qw0000gn/T/python-build.20240905225926.76590/Python-3.10.14/Lib/subprocess.py", line 526, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['/private/var/folders/fd/s_hgh6h15_920prcs17cn_qw0000gn/T/python-build.20240905225926.76590/Python-3.10.14/python.exe', '-W', 'ignore::DeprecationWarning', '-c', '\nimport runpy\nimport sys\nsys.path = ['/var/folders/fd/s_hgh6h15_920prcs17cn_qw0000gn/T/tmp738psdmm/setuptools-65.5.0-py3-none-any.whl', '/var/folders/fd/s_hgh6h15_920prcs17cn_qw0000gn/T/tmp738psdmm/pip-23.0.1-py3-none-any.whl'] + sys.path\nsys.argv[1:] = ['install', '--no-cache-dir', '--no-index', '--find-links', '/var/folders/fd/s_hgh6h15_920prcs17cn_qw0000gn/T/tmp738psdmm', '--root', '/', '--upgrade', 'setuptools', 'pip']\nrunpy.run_module("pip", run_name="__main__", alter_sys=True)\n']' died with <Signals.SIGABRT: 6>. make: *** [install] Error 1
.zshrc 中的 Pyenv 配置
export PYENV_ROOT="$HOME/.pyenv" [[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
已尝试的解决步骤
- 完全卸载并重装 Xcode 命令行工具
- 卸载并重装 Homebrew
- 尝试安装多个 Python 版本(3.9、3.10 等)
- 检查并确认 .zshrc 中的 Pyenv 配置符合官方文档
- 查阅 Pyenv GitHub 仓库的常见编译问题,未找到匹配方案
解决方案
针对该问题,可按以下步骤逐一排查:
更新 Pyenv 及 python-build
当前使用的 python-build 版本为 20180424,过于老旧无法适配 macOS 14 特性,执行更新:cd ~/.pyenv/plugins/python-build && git pull pyenv update强制指定架构为 arm64(M 系列芯片适用)
macOS 14 下 M 系列芯片可能存在架构检测错误,手动指定编译架构:ARCHFLAGS="-arch arm64" pyenv install 3.10.14禁用 ensurepip 跳过 pip/setuptools 安装
报错源于 ensurepip 阶段的 subprocess 调用失败,可先跳过该步骤,后续手动安装:pyenv install 3.10.14 --without-ensurepip # 安装完成后手动升级 pip/setuptools ~/.pyenv/versions/3.10.14/bin/python -m ensurepip --upgrade清理 Pyenv 缓存及临时文件
删除之前的编译缓存和临时文件,避免残留问题:rm -rf /var/folders/fd/s_hgh6h15_920prcs17cn_qw0000gn/T/python-build.* rm -rf ~/.pyenv/cache/*检查环境变量中的架构相关设置
确保没有强制设置 x86_64 架构的环境变量:# 查看当前设置 echo $ARCHFLAGS echo $PYTHON_CONFIGURE_OPTS # 若有错误设置,清空后重试安装 unset ARCHFLAGS unset PYTHON_CONFIGURE_OPTS pyenv install 3.10.14
内容的提问来源于stack exchange,提问作者Jim
相关产品推荐
相关产品推荐

