M1 Pro Mac(Sonoma系统)pyenv安装Python3.9.9失败求助
在M1 Pro芯片的MacOS Sonoma 14.4上用pyenv安装Python 3.9.9失败的解决办法
环境信息
- 设备:搭载M1 Pro芯片的Mac
- 系统:MacOS Sonoma(OS X 14.4)
- 工具:通过Homebrew安装的pyenv
报错详情
执行pyenv install 3.9.9后安装失败,核心报错如下:
pyenv install 3.9.9 python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.9.9.tar.xz... -> https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tar.xz Installing Python-3.9.9... python-build: use tcl-tk from homebrew python-build: use readline from homebrew python-build: use ncurses from homebrew python-build: use zlib from xcode sdk BUILD FAILED (OS X 14.4 using python-build 20180424) Inspect or clean up the working tree at /var/folders/gb/qw4m3z9x49n7d53pl5j_t_s40000gp/T/python-build.20240517153702.30044 Results logged to /var/folders/gb/qw4m3z9x49n7d53pl5j_t_s40000gp/T/python-build.20240517153702.30044.log Last 10 log lines: File "/private/var/folders/gb/qw4m3z9x49n7d53pl5j_t_s40000gp/T/python-build.20240517153702.30044/Python-3.9.9/Lib/ensurepip/__init__.py", line 206, in _main return _bootstrap( File "/private/var/folders/gb/qw4m3z9x49n7d53pl5j_t_s40000gp/T/python-build.20240517153702.30044/Python-3.9.9/Lib/ensurepip/__init__.py", line 125, in _bootstrap return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths) File "/private/var/folders/gb/qw4m3z9x49n7d53pl5j_t_s40000gp/T/python-build.20240517153702.30044/Python-3.9.9/Lib/ensurepip/__init__.py", line 34, in _run_pip return subprocess.run([sys.executable, "-c", code], check=True).returncode File "/private/var/folders/gb/qw4m3z9x49n7d53pl5j_t_s40000gp/T/python-build.20240517153702.30044/Python-3.9.9/Lib/subprocess.py", line 528, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '[\'/private/var/folders/gb/qw4m3z9x49n7d53pl5j_t_s40000gp/T/python-build.20240517153702.30044/Python-3.9.9/python.exe\', \'-c\', \'\nimport runpy\nimport sys\nsys.path = [\'/var/folders/gb/qw4m3z9x49n7d53pl5j_t_s40000gp/T/tmp8thxua6f/setuptools-58.1.0-py3-none-any.whl\', \'/var/folders/gb/qw4m3z9x49n7d53pl5j_t_s40000gp/T/tmp8thxua6f/pip-21.2.4-py3-none-any.whl\'] + sys.path\nsys.argv[1:] = [\'install\', \'--no-cache-dir\', \'--no-index\', \'--find-links\', \'/var/folders/gb/qw4m3z9x49n7d53pl5j_t_s40000gp/T/tmp8thxua6f\', \'--root\', \'/\', \'--upgrade\', \'setuptools\', \'pip\']\nrunpy.run_module(\"pip\", run_name=\"__main__\", alter_sys=True)\n\']' died with <Signals.SIGABRT: 6>. make: *** [install] Error 1
解决办法
1. 跳过ensurepip安装
安装时跳过自带的pip安装流程,之后手动安装pip:
pyenv install 3.9.9 --without-pip
安装完成后切换到该版本,从Python官方渠道下载get-pip.py文件,执行以下命令安装pip:
pyenv local 3.9.9 python get-pip.py
2. 更新pyenv及依赖库
先更新pyenv到最新版本,确保编译工具是最新的:
brew update && brew upgrade pyenv
安装或更新编译所需的依赖:
brew install openssl@1.1 readline sqlite3 xz zlib tcl-tk
重新执行安装命令:
pyenv install 3.9.9
3. 指定编译参数
设置环境变量强制使用Homebrew提供的依赖,避免与系统SDK冲突:
CFLAGS="-I$(brew --prefix openssl@1.1)/include -I$(brew --prefix readline)/include -I$(brew --prefix sqlite3)/include" \ LDFLAGS="-L$(brew --prefix openssl@1.1)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix sqlite3)/lib" \ pyenv install 3.9.9
内容的提问来源于stack exchange,提问作者Algu Smith
相关产品推荐
相关产品推荐

