使用pyenv安装Python 2.7.x失败,求解决方案
解决pyenv安装Python 2.7.7时pip安装失败的问题
问题根源
Python 2.7.7自带的SSL模块不支持SNI(服务器名称指示),而现代PyPI源(pypi.org)需要SNI才能正确验证SSL证书,导致连接时出现主机名不匹配的错误,进而无法下载兼容的pip版本。
解决方法
方法1:跳过自动安装pip,手动安装
- 安装Python时跳过pip自动安装:
PYTHON_CONFIGURE_OPTS="--enable-unicode=ucs4" pyenv install 2.7.7 --without-pip
- 切换到刚安装的Python版本:
pyenv global 2.7.7
- 下载适配Python 2.7的get-pip脚本:
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
- 手动安装指定版本的pip:
python get-pip.py pip==20.3.4
- 验证安装结果:
pip --version
方法2:临时指定旧PyPI源
安装时设置pip使用支持旧SSL验证的PyPI源,避免证书匹配错误:
PYTHON_BUILD_PIP_MIRROR=https://pypi.python.org/simple pyenv install 2.7.7
方法3:更新python-build工具
你的python-build版本为20180424,版本过旧,更新后可能包含针对旧Python的SSL补丁:
- 若通过Homebrew安装pyenv:
brew upgrade pyenv
- 若通过Git安装pyenv:
cd $(pyenv root) git pull
更新完成后重新执行安装命令:
pyenv install 2.7.7
额外提示:解决sqlite3缺失警告
安装时出现的sqlite3缺失警告,可先安装sqlite3再重新编译:
brew install sqlite3 PYTHON_CONFIGURE_OPTS="--with-sqlite3=$(brew --prefix sqlite3)" pyenv install 2.7.7
内容的提问来源于stack exchange,提问作者shbrainard
相关产品推荐
相关产品推荐

