【问题标题】:pip install --upgrade pip isnt upgrading pippip install --upgrade pip 不升级 pip
【发布时间】:2019-11-21 21:48:46
【问题描述】:

我正在尝试在 Centos 7 上升级 pip。我安装了pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)

当我运行pip install --upgrade pip --user 时,我得到以下输出:

Collecting pip
  Using cached https://files.pythonhosted.org/packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.2
You are using pip version 8.1.2, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

我尝试过的

我尝试了以下方法,结果都与上述相同:

  • pip install --upgrade pip --user
  • pip install -U pip --user --ignore-installed
  • pip install -U pip --user --ignore-installed --no-cache-dir
  • sudo yum update pip 返回
No Match for argument: pip
No package pip available.
No packages marked for update
  • sudo yum update python-pip 返回 No packages marked for update

观察

python -m pip --version 输出:

pip 19.3.1 from /home/deploy/.local/lib/python2.7/site-packages/pip (python 2.7)

pip --version 输出:

pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)

【问题讨论】:

  • 不要用系统pip本身升级系统pip。它只能使用您的操作系统包管理器进行修改。如果您想使用较新的 pip,没关系,只需在 $PATH 中较早地放置一个较新的 pip - 但不要管系统 pip!
  • 因为您的发行版 (Centos) 仔细选择并测试了所有内容以兼容。如果您只想关闭系统 pip 的 nag,请在您的 pip 配置文件中设置disable_pip_version_check = true。如果您想使用最新的 pip 效用,请仅为您的用户安装它。
  • 注解:CentOS中的pip包叫做python-pip,你应该使用sudo yum update python-pip而不是sudo yum update pip
  • @wim 提出了一些好处。除了他们所说的,我强烈建议使用某种环境管理工具。
  • ...对于像 CentOS 这样的传统发行版,您只能在系统范围内安装每个软件包的一个版本;而一个好的环境管理系统可以让您拥有尽可能多的环境,其中安装的软件集完全不同(并且可能相互不兼容),它们之间不会发生冲突,也不会冒任何破坏更大操作系统的风险。把它想象成一个 virtualenv,但它适用于你安装的每一个软件,而不仅仅是 Python 库。

标签: python python-2.7 pip


【解决方案1】:

如果您希望 pip 解析到与 python 相同的位置,则需要更新您的 PATH 以在 /usr/lib/python2.7/bin 之前包含 /home/deploy/.local/lib/python2.7/bin。否则,python -m pip 是更合适的使用模式

否则,您正在查看两个完全独立的 python 安装,并且 pip 确实在其中一个中升级了

注意:Python2 的生命周期已经结束,所以最好还是删除主文件夹中的那个,然后改用 Pipenv 或 pyenv 之类的东西

【讨论】: