CentOS 6.7下安装指定pip版本后无法升级至更高版本的问题
问题分析与解决
先看你的操作环境,这是问题的核心背景:
$ lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 6.7 (Final) Release: 6.7 Codename: Final
你使用的CentOS 6.7自带Python 2.6版本,这就是升级pip无效的关键原因。
为什么pip install --upgrade pip没效果?
一句话说透:pip 10.0.0及以上版本彻底放弃了对Python 2.6的支持。
Python 2.6早在2013年就停止了官方维护,pip团队在10.0.0版本中直接移除了对它的兼容。当你运行升级命令时,pip会自动检测当前Python版本,然后安装适配该版本的最高可用pip版本——也就是9.0.3,这是最后一个支持Python 2.6的pip版本。
你可以手动验证这一点,尝试指定安装10.0.1会直接报错:
$ sudo pip2.6 install pip==10.0.1 # 会返回类似错误: # Could not find a version that satisfies the requirement pip==10.0.1 (from versions: ..., 9.0.3) # No matching distribution found for pip==10.0.1
可行的解决方案
根据你的需求,有两个方向可选:
保留Python 2.6的情况下
接受停留在pip 9.0.3,这是支持Python 2.6的最后一个pip版本。后续安装Python包时,也要注意选择仍兼容Python 2.6的包版本(很多新包已经不再支持2.6了)。升级Python版本(推荐)
CentOS 6.7可以通过yum安装Python 2.7(不会替换系统自带的Python 2.6,避免影响系统工具):# 安装Python2.7 sudo yum install -y python27 # 安装对应版本的pip sudo easy_install-2.7 pip # 验证版本 pip2.7 --version之后你就可以用
pip2.7安装最新的包,也能正常升级到最新版pip了。如果需要,也可以考虑升级到Python 3.x版本(比如通过编译安装或第三方源),但Python 2.7对CentOS6来说是更平滑的过渡方案。
内容的提问来源于stack exchange,提问作者Ankur Agarwal
相关产品推荐
相关产品推荐

