M1 Pro芯片MacBook Pro使用pyenv安装Python3.11.3失败求助
解决M1 Pro MacBook Pro上pyenv安装Python 3.11.3失败的问题
问题详情
在搭载M1 Pro芯片的MacBook Pro(系统版本:macOS 13.3.1 (a))上,使用pyenv 2.3.18执行pyenv install 3.11.3时安装失败,核心报错为subprocess.CalledProcessError,原因是内置的ensurepip工具在安装setuptools和pip的过程中返回非零状态码。已尝试重装Xcode Command Line Tools,但问题未解决。
完整报错输出:
> pyenv install 3.11.3 python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.11.3.tar.xz... -> https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tar.xz Installing Python-3.11.3... python-build: use readline from homebrew python-build: use zlib from xcode sdk BUILD FAILED (OS X 13.3.1 using python-build 20180424) Inspect or clean up the working tree at /var/folders/1p/dz3r2rz55kd60_t8sgslkvvh0000gn/T/python-build.20230602131834.2670 Results logged to /var/folders/1p/dz3r2rz55kd60_t8sgslkvvh0000gn/T/python-build.20230602131834.2670.log Last 10 log lines: File "/private/var/folders/1p/dz3r2rz55kd60_t8sgslkvvh0000gn/T/python-build.20230602131834.2670/Python-3.11.3/Lib/ensurepip/__init__.py", line 202, in _bootstrap return _run_pip([*args, *_PACKAGE_NAMES], additional_paths) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/var/folders/1p/dz3r2rz55kd60_t8sgslkvvh0000gn/T/python-build.20230602131834.2670/Python-3.11.3/Lib/ensurepip/__init__.py", line 103, in _run_pip return subprocess.run(cmd, check=True).returncode ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/var/folders/1p/dz3r2rz55kd60_t8sgslkvvh0000gn/T/python-build.20230602131834.2670/Python-3.11.3/Lib/subprocess.py", line 571, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['/private/var/folders/1p/dz3r2rz55kd60_t8sgslkvvh0000gn/T/python-build.20230602131834.2670/Python-3.11.3/python.exe', '-W', 'ignore::DeprecationWarning', '-c', '\nimport runpy\nimport sys\nsys.path = [\'/var/folders/1p/dz3r2rz55kd60_t8sgslkvvh0000gn/T/tmp14w0pyb5/setuptools-65.5.0-py3-none-any.whl\', \'/var/folders/1p/dz3r2rz55kd60_t8sgslkvvh0000gn/T/tmp14w0pyb5/pip-22.3.1-py3-none-any.whl\'] + sys.path\nsys.argv[1:] = [\'install\', \'--no-cache-dir\', \'--no-index\', \'--find-links\', \'/var/folders/1p/dz3r2rz55kd60_t8sgslkvvh0000gn/T/tmp14w0pyb5\', \'--root\', \'/\', \'--upgrade\', \'setuptools\', \'pip\']\nrunpy.run_module("pip", run_name="__main__", alter_sys=True)\n']' returned non-zero exit status 1. make: *** [install] Error 1
已尝试的无效操作:
sudo rm -rf /Library/Developer/CommandLineTools xcode-select --install
可行解决方案
该问题在M系列Apple Silicon Mac上较为普遍,主要源于Python编译时的架构兼容或依赖库路径问题,可尝试以下方法:
方法1:跳过内置ensurepip安装
安装时跳过自带的ensurepip步骤,之后手动安装pip:
PYTHON_CONFIGURE_OPTS="--without-ensurepip" pyenv install 3.11.3
安装完成后,从pypa官方获取get-pip.py脚本,用该Python版本执行安装:
~/.pyenv/versions/3.11.3/bin/python get-pip.py rm get-pip.py
方法2:指定编译架构与依赖库路径
明确指定arm64架构及openssl依赖路径(需确保homebrew已安装openssl@1.1):
CFLAGS="-I$(brew --prefix openssl@1.1)/include" \ LDFLAGS="-L$(brew --prefix openssl@1.1)/lib" \ PYTHON_CONFIGURE_OPTS="--enable-shared" \ pyenv install 3.11.3
方法3:更新pyenv及python-build
当前使用的python-build版本为20180424,版本过于老旧,先更新pyenv:
pyenv update
若通过homebrew安装pyenv,也可执行以下命令更新:
brew update && brew upgrade pyenv
更新完成后重新尝试安装Python 3.11.3。
方法4:清理pyenv缓存
可能下载的Python源码包损坏,清理缓存后重新安装:
rm -rf ~/.pyenv/cache/* pyenv install 3.11.3
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

