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

问题描述 投票:443回答:16

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

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

python upgrade virtualenv pip package-managers
16个回答
829
投票

pip和其他任何人一样只是一个PyPI package;您可以像升级任何包一样使用它来升级自己:

pip install --upgrade pip

在Windows上,recommended command是:

python -m pip install --upgrade pip

0
投票

在Windows 7的笔记本电脑上安装最新版本的pip的正确方法是:

python.exe -m pip install --upgrade pip

0
投票

pip版本10有一个问题。它将表现为错误:

ubuntu@mymachine-:~/mydir$ sudo pip install --upgrade pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

解决方案是在要升级的venv中然后运行:

sudo myvenv/bin/pip install --upgrade pip

而不仅仅是

sudo pip install --upgrade pip

0
投票

单行Python程序 我找到的最好的方法是编写一个单行程序,下载并运行官方的get-pip脚本。请参阅下面的代码。

官方文档建议使用curl下载get-pip脚本,但由于我在windows上工作并且没有安装curl,我更喜欢使用python本身来下载和运行脚本。

这是可以使用Python 3通过命令行运行的单行程序:

python -c "import urllib.request; exec(urllib.request.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"

该行根据installation notes获取官方的“get-pip.py”脚本,并使用“exec”命令执行脚本。

对于Python2,您可以将“urllib.request”替换为“urllib2”:

python -c "import urllib2; exec(urllib2.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"

注意事项 值得注意的是盲目运行任何python脚本本质上都是危险的。因此,官方说明建议在运行之前下载脚本并进行检查。

也就是说,很多人实际上并没有检查代码而只是运行它。这个单行程序使这更容易。


0
投票

我在覆盆子pi上遇到了类似的问题。

问题是http需要SSL,因此我需要强制它使用https来解决这个问题。

sudo pip install --upgrade pip --index-url=https://pypi.python.org/simple

要么

sudo pip-3.2 --upgrade pip --index-url=https://pypi.python.org/simple/

0
投票

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

  python3 -m pip install --upgrade pip setuptools wheel

0
投票

我处于类似的情况,想要更新urllib3包。对我有用的是:

pip3 install --upgrade --force-reinstall --ignore-installed urllib3==1.25.3

-2
投票

非常简单。只需从https://bootstrap.pypa.io/get-pip.py下载点子。将文件保存在某些forlder或dekstop中。我将文件保存在D盘中。然后从命令提示符导航到您已下载pip的文件夹。然后输入那里

python -get-pip.py


51
投票

更安全的方法是run pip though a python module

python -m pip install -U pip

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


39
投票

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

固定:

(inside virtualenv):easy_install -U pip

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

这将安装当前版本,在撰写本文时,此解决方案是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)

2
投票

使用'pip install --upgrade pip'升级pip并不总是有效,因为可怕的证书问题:There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version

我喜欢使用one line命令来实现虚拟环境:

curl https://bootstrap.pypa.io/get-pip.py | python -

或者,如果您想要在整个盒子中安装它,您将需要

curl https://bootstrap.pypa.io/get-pip.py | sudo python -

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


1
投票

在我的例子中,这是从Debian Stable的终端命令行开始的

python3 -m pip install --upgrade pip

1
投票

为了让这个对我有用,我必须使用Python命令提示符(在VS CODE的WIN10上)深入Python目录。就我而言,它位于我的“AppData \ Local \ Programs \ Python \ python35-32”目录中。从那以后我跑了命令......

python -m pip install --upgrade pip

这很有效,我很高兴。


1
投票

使用管理员权限打开命令提示符,然后重复以下命令:

python -m pip install --upgrade pip

0
投票

我在C:\ Python \ Python36中安装了Python,所以我进入Windows命令提示符并键入“cd C:\ Python \ Python36以到达正确的目录。然后输入”python -m install --upgrade pip“all好!

© www.soinside.com 2019 - 2024. All rights reserved.