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

use*_*413 19 software-installation pip

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

pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)

你得到:

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.
Run Code Online (Sandbox Code Playgroud)

很公平。现在试试

pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)

你会得到:

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.
Run Code Online (Sandbox Code Playgroud)

那么,如何真正获得 pip 8.1.2?

Ami*_*ias 13

除非您实际上正在处理 ubuntu 代码并且有特定的理由,否则更新系统 python 不是一个好主意。您可以通过使用 pip 更新而不是使用 APT 存储库中的 python 库来破坏许多系统依赖项。

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

如果这两种方法没有自己的副本,它们将优雅地回退到使用系统库,virtualenv 有更多关于如何控制反馈的选项。

pip 与 --user

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

虚拟环境

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


小智 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
Run Code Online (Sandbox Code Playgroud)

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


Aff*_*ted 5

sudo -H python -m pip install --upgrade pip将解决您的问题。正如上面提到的,虽然系统特定需要 python 2.7 来处理某些事情......话虽如此,您可以升级 pip 而不会对其产生负面影响,但如果您愿意,您也可以同时安装 3.5。

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