我目前已经安装了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)
然后最后它建议我使用我已经提供的相同指令升级 !
我做错了吗?
答案 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)
如果以上不起作用,请尝试这样做有效(我有类似的情况,这有效):
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
运行下载的文件:python get-pip.py
上面卸载旧版本并安装最新版本。 参考链接:https://pip.pypa.io/en/stable/installing/#installing-with-get-pip-py