pip拒绝升级

时间:2017-01-16 10:34:25

标签: python ubuntu pip

我目前已经安装了pip 8.1.2。

所以我想将它升级到最新版本(9.0.1)并执行:

sudo pip install --upgrade pip


Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 846kB/s 
Installing collected packages: pip
  Found existing installation: pip 8.1.2
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-8.1.2
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

它似乎正确下载了9.0.1,但它拒绝卸载现有的安装(8.1.2)

然后最后它建议我使用我已经提供的相同指令升级

我做错了吗?

3 个答案:

答案 0 :(得分:7)

Ubuntu pip版本已经过修补以防止自我升级(防止所有安装到系统管理的文件中,补丁名为hands-off-system-packages.patch)。您应该使用Ubuntu包装系统进行升级。提供的反馈肯定会得到改善。

由于您的Ubuntu版本还没有Ubunutu pip 9.0.1包,但您无法通过这种方式升级到更新的版本(但是有version for Zesty)。

(丑陋)解决方法是改为使用easy_install

sudo easy_install -U pip

这是有效的,因为easy_install没有陷阱,以防止升级。但是,这将使用较新的pip版本替换系统管理文件。如果您的软件包管理器要重新安装python-pip软件包,它会很高兴地覆盖这些文件,理论上您最终可能会遇到安装损坏的问题。此外,easy_install会添加比文件包更多的文件,而这些额外的文件可能会导致问题,尤其是当您在新版本python-pip时> 打包。

如果您使用virtualenv,您可以自由升级其中的pip,这很好。

答案 1 :(得分:1)

@api.onchange("main_channel_ids") def sub_ids_values(self): for rec in self: sub_channels = rec.main_channel_ids.mapped('sub_channel_ids') rec.sub_channel_ids = sub_channels 有一个类似的问题不希望升级,但我并不热衷于更换软件包管理器的版本,因为我总是通过{{1}在安装时添加pip选项我认为“有什么危害?”与--user本身做同样的事情。

pip

它只适用于一个用户,但仅适用于一些只是极好的用例。

答案 2 :(得分:1)

如果以上不起作用,请尝试这样做有效(我有类似的情况,这有效):

  1. 下载get-pip.py: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  2. 运行下载的文件:python get-pip.py

    上面卸载旧版本并安装最新版本。 参考链接:https://pip.pypa.io/en/stable/installing/#installing-with-get-pip-py