Mac下通过Pyenv安装Python 3.9.16失败求助
解决pyenv安装Python 3.9.16时的SIGABRT错误
错误信息:
Traceback (most recent call last): File "/private/var/folders/yv/mbl800td04xb4pd9hctdshd00000gn/T/python-build.20230508142345.28952/Python-3.9.16/Lib/runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "/private/var/folders/yv/mbl800td04xb4pd9hctdshd00000gn/T/python-build.20230508142345.28952/Python-3.9.16/Lib/runpy.py", line 87, in _run_code exec(code, run_globals) File "/private/var/folders/yv/mbl800td04xb4pd9hctdshd00000gn/T/python-build.20230508142345.28952/Python-3.9.16/Lib/ensurepip/__main__.py", line 5, in <module> sys.exit(ensurepip._main()) File "/private/var/folders/yv/mbl800td04xb4pd9hctdshd00000gn/T/python-build.20230508142345.28952/Python-3.9.16/Lib/ensurepip/__init__.py", line 211, in _main return _bootstrap( File "/private/var/folders/yv/mbl800td04xb4pd9hctdshd00000gn/T/python-build.20230508142345.28952/Python-3.9.16/Lib/ensurepip/__init__.py", line 130, in _bootstrap return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths) File "/private/var/folders/yv/mbl800td04xb4pd9hctdshd00000gn/T/python-build.20230508142345.28952/Python-3.9.16/Lib/ensurepip/__init__.py", line 39, in _run_pip return subprocess.run(cmd, check=True).returncode File "/private/var/folders/yv/mbl800td04xb4pd9hctdshd00000gn/T/python-build.20230508142345.28952/Python-3.9.16/Lib/subprocess.py", line 528, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['/private/var/folders/yv/mbl800td04xb4pd9hctdshd00000gn/T/python-build.20230508142345.28952/Python-3.9.16/python.exe', '-c', '\nimport runpy\nimport sys\nsys.path = [\'/var/folders/yv/mbl800td04xb4pd9hctdshd00000gn/T/tmp45llfbar/setuptools-58.1.0-py3-none-any.whl\', \'/var/folders/yv/mbl800td04xb4pd9hctdshd00000gn/T/tmp45llfbar/pip-22.0.4-py3-none-any.whl\'] + sys.path\nsys.argv[1:] = [\'install\', \'--no-cache-dir\', \'--no-index\', \'--find-links\', \'/var/folders/yv/mbl800td04xb4pd9hctdshd00000gn/T/tmp45llfbar\', \'--root\', \'/\', \'--upgrade\', \'setuptools\', \'pip\']\nrunpy.run_module("pip", run_name="__main__", alter_sys=True)\n']' died with <Signals.SIGABRT: 6>. make: *** [install] Error 1
解决方案:
该错误是Python安装流程中内置的ensurepip工具在部署pip/setuptools时触发SIGABRT信号导致的,常见于macOS系统,可通过以下方式解决:
- 更新pyenv及python-build组件,确保使用最新安装脚本:
pyenv update
- 安装Python编译所需的系统依赖(以Homebrew为例):
brew install openssl readline sqlite3 xz zlib
跳过内置
ensurepip流程,手动安装pip:- 安装Python时添加跳过参数:
PYTHON_CONFIGURE_OPTS="--without-ensurepip" pyenv install 3.9.16- 切换至刚安装的版本,手动安装pip:
pyenv global 3.9.16 curl https://bootstrap.pypa.io/get-pip.py | python备选方案:指定编译时的头文件与库路径,确保Python编译完整:
CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix readline)/include -I$(brew --prefix zlib)/include -I$(brew --prefix sqlite3)/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix sqlite3)/lib" pyenv install 3.9.16
内容的提问来源于stack exchange,提问作者Alberto Sanmartin Martinez
相关产品推荐
相关产品推荐

