我已经安装了Ubuntu提供的pip时,如何安装最新版本的pip?


18

在Ubuntu 16.04中,当您执行以下操作时:

pip install --upgrade pip

你得到:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

很公平。现在尝试

pip install --upgrade pip

你会得到:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

那么,如何实际获得点子8.1.2?


sudo -H pip install --upgrade pip工作吗?
edwinksl

@edwinksl:它给出的结果与其他命令相同。
user2413

自从对我有用以来,这似乎很奇怪。可能需要提交错误报告。
edwinksl '16

@edwinksl:谢谢。我
将再

1
@edwinksl 刚打开一个问题,以防有人要追踪。
sethmlarson

Answers:


13

除非您实际上正在使用ubuntu代码并有具体原因,否则更新系统python不是一个好主意。通过使用pip更新而不是使用APT存储库中的python库,您可以打破很多系统依赖项。

如果您正在开发python应用程序,并且需要更改库的版本,则应使用--user选项pip或创建virtualenv来存储用户的库版本。

如果这两种方法都没有自己的副本,则这两种方法都会轻松地使用系统库,virtualenv在控制反馈方面有更多选择。

与--user点

这就像在所有pip命令的末尾添加--user一样简单,这会将您的python库放在〜/ .local / lib / pythonX.X(其中XX是您的python版本号)中,对于这里,首先,如果必须通过sudo运行,请谨慎执行root操作,因为这可能会影响系统python。

虚拟环境

这的工作方式与上述类似,但与特定用户的联系较少,因此没有sudo限制,您还可以克隆virtualenv并对其进行升级以测试更改,从而允许您在恢复性能时恢复原状。 http://docs.python-guide.org/en/latest/dev/virtualenvs/


1
如果您想安装2.7,则确实要进行alt python安装,因此不会干扰操作系统python。从那里,您需要在venv之前更新alt安装中的pip。您还希望--no-cache-dir阻止安装缓存的版本。
Wyrmwood

更新pip不会对(无论如何)默认情况下出厂的python 2.7产生负面影响。
受灾

10

似乎安装pip8.1.2 的.whl文件可能会出现问题。安装pip8.1.2的一种解决方法是直接从PyPi下载源代码并通过安装setup.py

以下为我工作:

wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar -xzvf pip-8.1.2.tar.gz
cd pip-8.1.2
sudo python setup.py install

当然,这不是通过安装pip 8.1.2的解决方案pip install --upgrade,但是应该消除警告,直到解决此问题为止。


关于该线程的评论表明,这部分与ubuntu修补其pip打包版本以阻止其升级apt已安装软件包有关。
Amias'6

5

sudo -H python -m pip install --upgrade pip将解决您的问题。正如上面提到的,虽然系统特定于某些事情需要python 2.7。也就是说,您可以升级pip而不会对它产生负面影响,但是如果您愿意,还可以安装3.5。

-H是一个标志sudo的请求,该安全策略设置HOME环境变量设置为目标用户的密码数据库条目指定的主目录。根据策略,这可能是默认行为。


如果有人想对这样的思想性文章投反对票,那么您应该真正说出为什么这是可怜的形式。
javadba

因为他们很生气,需要发泄对某人的愤怒。对您的要求感到生气,生活一般。堆栈溢出已经变成了一个可以骚扰的地方
。–

2

使用apt-get卸载pip,然后使用easy_install进行安装。它为我工作。

sudo apt-get remove python-pip
sudo easy_install pip

easy_install失败。我懂了bash: /usr/bin/pip: No such file or directory。而且我现在也无法清除任何问题。我希望这并没有完全破坏我机器上的点子。
Dean Schulze
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.