如何从我的虚拟环境中更新pip本身?

zak*_*ces 485 python pip upgrade package-managers virtualenv

我能够更新pip托管包,但是如何更新pip本身?根据pip --version,我目前在我的virtualenv中安装了pip 1.1,我想更新到最新版本.

命令是什么?我是否需要使用分发或是否有本机pip或virtualenv命令?我已经尝试过pip update,并pip update pip没有成功.

Cai*_*von 872

pip就像任何其他的PyPI包一样; 您可以像升级任何包一样使用它来升级自己:

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

在Windows上,推荐的命令是:

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

  • 在Windows下,我有一个权限问题,尝试使用pip升级pip.相反,我使用easy_install进行升级:`easy_install pip` (53认同)
  • 在Windows上可能最好使用这样的命令:`python -m pip install --upgrade pip`以避免从脚本目录运行pip.exe. (37认同)
  • 当我做这个pip似乎升级(1.1 - > 1.4),但当我做"pip --version"时,它仍然显示旧版本1.1.试图再次停用并激活virtualenv,但它仍然显示旧版本. (7认同)

Jan*_*zny 53

更安全的方法是通过python模块运行pip:

python -m pip install -U pip
Run Code Online (Sandbox Code Playgroud)

在Windows上,似乎有二进制文件试图替换自己的问题,这种方法可以解决这个限制.

  • 这是pip本身推荐的,如果它检测到自己的更新版本. (8认同)
  • 我相信这更安全的原因是因为在某些操作系统(Windows)上,直接运行 pip 可以在可执行文件上创建一个文件锁,这会阻止更新它。通过调用 Python 并告诉它直接加载模块,可以避免访问可执行文件。 (2认同)

jmo*_*moz 40

在我的情况下,我的pip版本被破坏,因此更新本身不起作用.

固定:

(inside virtualenv):easy_install -U pip
Run Code Online (Sandbox Code Playgroud)


Roh*_*aki 15

对于窗户

\n
    \n
  • 转到命令提示符
  • \n
  • 并使用这个命令
  • \n
  • python -m pip install -\xe2\x80\x93upgrade pip
  • \n
  • 不要忘记重新启动编辑器,以避免出现任何错误
  • \n
  • pip你可以通过以下方式检查版本
  • \n
  • pip --version
  • \n
  • pip例如,如果您想安装任何特定版本,version 18.1 请使用此命令,
  • \n
  • python -m pip install pip==18.1
  • \n
\n


Eam*_*nny 9

我在Debian Jessie下尝试了上面提到的所有这些解决方案.它们不起作用,因为它只需要由debian软件包管理器编译的最新版本,即1.5.6,相当于版本6.0.x. 一些使用pip作为先决条件的软件包将无法用作结果,例如spaCy(需要选项--no-cache-dir才能正常运行).

因此,解决这些问题的最佳方法是使用wget从网站下载或使用curl 运行get-pip.py,如下所示:

 wget https://bootstrap.pypa.io/get-pip.py -O ./get-pip.py
 python ./get-pip.py
 python3 ./get-pip.py
Run Code Online (Sandbox Code Playgroud)

这将安装当前版本,在撰写本文时,此解决方案是9.0.1,这超出了Debian提供的范围.

 $ pip --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python2.7/dist-packages (python 2.7)
 $ pip3 --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python3.4/site-packages (python 3.4)
Run Code Online (Sandbox Code Playgroud)

  • 当`pip install --upgrade pip`失败时有用 (2认同)

Has*_*man 9

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

在 UBUNTU 18.04 中,执行上述命令时出现以下错误:

ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/local/bin/pip'
Consider using the `--user` option or check the permissions.
Run Code Online (Sandbox Code Playgroud)

下面的命令解决了我的问题:

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


小智 6

为了让它对我有用,我必须使用 Python 命令提示符(在 WIN10 上从 VS CODE)深入研究 Python 目录。就我而言,它位于我的AppData\Local\Programs\Python\python35-32目录中。现在我从那里运行命令......

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

这很有效,我可以走了。


rou*_*ble 5

由于可怕的证书问题,使用“ pip install --upgrade pip ”升级 pip并不总是有效:确认 ssl 证书时出现问题:[SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 警报协议版本

我喜欢对虚拟环境使用单行命令:

curl https://bootstrap.pypa.io/get-pip.py | python -
Run Code Online (Sandbox Code Playgroud)

或者,如果您想将其安装为宽框,您将需要

curl https://bootstrap.pypa.io/get-pip.py | sudo python -
Run Code Online (Sandbox Code Playgroud)

如果您想在自动化脚本中运行时使输出静音,您可以给 curl 一个-s标志。


dre*_*-hh 5

如果您正在使用 venv,对 pip install 的任何更新都将导致升级系统 pip 而不是 venv pip。您还需要升级 pip 引导程序包。

  python3 -m pip install --upgrade pip setuptools wheel
Run Code Online (Sandbox Code Playgroud)