CentOS6下Python2.6+pip9.0.1安装包失败,报SyntaxError求助
解决CentOS6 + Python2.6 + pip9.0.1安装包时的SyntaxError问题
我之前维护老CentOS6环境的时候刚好碰到过一模一样的问题,根源很明确:pip 9.0.1已经不再完全兼容Python2.6了。
Python2.6早在2013年就停止官方支持了,而pip从9.x版本开始,内部代码逐步引入了Python2.7及以上版本才支持的语法特性(比如某些字典推导写法、未导入from __future__ import print_function就使用print()函数等),这直接导致你运行pip install时触发SyntaxError。
具体解决步骤:
1. 先降级pip到支持Python2.6的版本
因为当前的pip已经报错无法正常使用,我们用系统自带的easy_install来安装兼容的pip版本(推荐安装最后一个支持Python2.6的pip版本:9.0.3,它修复了9.0.1里的部分兼容问题):
# 先卸载当前损坏的pip pip uninstall -y pip # 如果上面的命令报错,就手动删除相关文件 rm -rf /opt/pex_build/bin/pip /opt/pex_build/lib/python2.6/site-packages/pip* # 用easy_install安装兼容版本 easy_install pip==9.0.3
2. 安装兼容Python2.6的目标包
现在pip恢复正常了,但要注意:最新版的virtualenv、requests、pex也已经不再支持Python2.6,所以安装时必须指定兼容的旧版本:
- 安装virtualenv(最后一个支持Python2.6的版本是15.1.0):
pip install virtualenv==15.1.0
- 安装requests(最后一个支持Python2.6的版本是2.18.4):
pip install requests==2.18.4
- 安装pex(最后一个支持Python2.6的版本是1.4.1):
pip install pex==1.4.1
验证
安装完成后,可以分别运行以下命令确认版本正常:
pip --version virtualenv --version python -c "import requests; print(requests.__version__)" python -c "import pex; print(pex.__version__)"
内容的提问来源于stack exchange,提问作者Anjana Shivangi
相关产品推荐
相关产品推荐

