【问题标题】:How do I update/upgrade pip itself from inside my virtual environment?如何从我的虚拟环境中更新/升级 pip 本身?
【发布时间】:2013-02-19 17:12:00
【问题描述】:

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

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

【问题讨论】:

  • pip install --upgrade pip?这只是另一个 PyPI 包。
  • 那个命令给了我“/Users/zak/MyProject/venv/bin/pip install: error: no such option: --update”
  • 这是--upgrade,不是--update,抱歉。我立即编辑了我的帖子,但你一定是在错误的时间看到它。
  • @Cairnarvon 与pip3 的命令不同吗?我正在尝试 pip3 但它只是告诉我它找不到它然后继续抱怨它不是最新的......当它甚至不允许我更新/升级它时!

标签: python upgrade virtualenv pip package-managers


【解决方案1】:

pip 只是一个PyPI package 和其他的一样;您可以使用它来升级自身,就像升级任何软件包一样:

pip install --upgrade pip

在 Windows 上,recommended command 是:

python -m pip install --upgrade pip

【讨论】:

  • 在 Windows 下,我在尝试使用 pip 升级 pip 时遇到了权限问题。相反,我使用 easy_install 进行升级:easy_install pip
  • 当我这样做时,这个 pip 似乎升级了(1.1 -> 1.4),但是当我执行“pip --version”时,它仍然显示旧版本 1.1。尝试再次停用并激活 virtualenv,但它仍然显示旧版本。
  • 在 Windows 上使用这样的命令可能会更好:python -m pip install --upgrade pip 以避免从脚本目录运行 pip.exe。
  • @Zitrax 你解决了这个问题吗?我也面临同样的问题。
  • @Mohammadalibaghershemirani 抱歉,这是不久前的事了——不记得了。
【解决方案2】:

比较安全的方法是run pip though a python module:

python -m pip install -U pip

在 Windows 上,尝试替换自身的二进制文件似乎存在问题,此方法可以解决该限制。

【讨论】:

  • 如果 pip 检测到自己的更新版本,这就是现在的建议。
  • 我相信这更安全的原因是因为在某些操作系统(Windows)上,直接运行 pip 可以在可执行文件上创建文件锁定,这将阻止更新它。通过调用 Python 并告诉它直接加载模块,您可以避免访问可执行文件。
  • 您必须在管理员模式下运行命令提示符才能使其工作。我尝试了其他几个建议,但没有任何效果,直到我以管理员模式重新启动命令提示符窗口,然后该命令完美运行。
  • 现在我收到了这个错误,ModuleNotFoundError: No module named 'pip'
【解决方案3】:

在我的情况下,这在 Debian Stable 的终端命令行中起作用

python3 -m pip install --upgrade pip

【讨论】:

    【解决方案4】:

    在我的情况下,我的 pip 版本已损坏,因此更新本身无法正常工作。

    修复:

    (inside virtualenv):easy_install -U pip
    

    【讨论】:

    • 这也是我的情况。我尝试了所有其他方法,但只有这个对我有帮助。谢谢!
    • 这里也一样,这是在 Debian 上对我有用的唯一方法。使用 python 或 pip 从 virtualenv 中升级 pip 会失败,因为它拒绝卸载 venv 之外的现有 pip。
    • 运行它向我展示了很多东西,包括运行 --upgrade 时未显示的 Download error on https://pypi.python.org/simple/pip/: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) -- Some packages may not be found!。这可能是安装任何 pip 包失败以及为什么通过 pip 升级 pip 也失败的原因,SSL 似乎坏了。
    • 救命稻草,谢谢。尝试了其他所有方法,只有这在 Windows 10 上有效。
    • 在 Linux Mint 上完美运行
    【解决方案5】:

    我在 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)
    

    【讨论】:

    • pip install --upgrade pip失败时很有帮助
    • 如果我能对这个答案投票几次,我会的。这刚刚通过更新到 pip 10.x 解决了 pip 9.x 因 SSL 错误而失败的问题。见stackoverflow.com/questions/25981703/…
    • 好吧,如果你曾经投票过,我会很高兴。我的答案通常是从一两个小时的狩猎和多年的经验中找到的。不能对我的问题说同样的话吗?人真的可以很刻薄! :)
    【解决方案6】:

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

    python -m pip install --upgrade pip
    

    这很有效,我很高兴。

    【讨论】:

      【解决方案7】:

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

      【讨论】:

        【解决方案8】:

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

        python.exe -m pip install --upgrade pip
        

        【讨论】:

          【解决方案9】:

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

          python -get-pip.py
          

          【讨论】:

            【解决方案10】:

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

            python -m pip install --upgrade pip
            

            【讨论】:

            • 这不是和现有的一些答案一样吗?
            • 是的,但是,我遇到了这个问题,当我使用管理员权限运行 CMD 时它得到了解决。
            【解决方案11】:

            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
            

            【讨论】:

              【解决方案12】:

              单行 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 脚本本质上是危险的。出于这个原因,官方说明建议下载脚本并在运行前检查它。

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

              【讨论】:

                【解决方案13】:

                我在树莓派上遇到了类似的问题。

                问题是 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/
                

                【讨论】:

                  【解决方案14】:

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

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

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

                  或者如果你想在盒子宽的地方安装它,你需要

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

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

                  【讨论】:

                    【解决方案15】:

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

                      python3 -m pip install --upgrade pip setuptools wheel
                    

                    【讨论】:

                    • 成功安装后 python 列表仍然显示旧版本的 pip。如何将最新版本指向当前环境
                    • 我应该做$HOME/venv/bin/python3还是只做python3
                    • 如果您使用源 /path/to/myvenv/bin/activate 激活了 venv,则只需使用 python3 甚至只是 python。如果它没有被激活运行/path/to/myvenv/bin/python3
                    • python3 -m pip install --upgrade pip setuptools wheel /usr/bin/python3: No module named pip
                    • 一些发行版发布了没有 pip 的 python3 版本。最简单的方法是在同一个 python 安装中使用 ensurepip 和 bootstrap pip。 python3-m ensurepip --upgradedocs.python.org/3/library/ensurepip.html
                    【解决方案16】:

                    我遇到了类似的情况,想更新 urllib3 包。 对我有用的是:

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

                    【讨论】:

                      【解决方案17】:

                      对于windows

                      • 转到命令提示符
                      • 并使用此命令
                      • python -m pip install -–upgrade pip
                      • 别忘了重启编辑器,以免出错
                      • 您可以通过以下方式查看pip 的版本
                      • pip --version
                      • 如果您想安装任何特定版本的pip,例如version 18.1 ,请使用此命令,
                      • python -m pip install pip==18.1

                      【讨论】:

                      • 纠正一个错字,应该是,python -m pip install --upgrade pip
                      • 更正了错字,@shantanupathak,感谢您提供信息。
                      【解决方案18】:

                      首先,这样做:

                      sudo apt install python3-pip python-setuptools-doc

                      然后,来自非root 操作系统用户(永远,永远不要在root 操作系统用户下运行pip* !!!):

                      # N.B. bash shell works for this, I have never tested with other shells!
                      . ....your_virtualenv_folder/bin/activate
                      pip3 install -U pip
                      

                      注意:据我所知,-U--upgrade 的同义词。

                      【讨论】:

                        【解决方案19】:

                        Linux

                        python3 -m pip install --upgrade pip

                        对于窗户:

                        1.在Windows搜索框中输入命令提示符

                        2.在命令提示符中,输入“cd\”

                        3.回车,你会看到驱动名C:\&gt;

                        4.找到你的Python应用路径,也就是你最初安装Python的文件夹

                        以下是 Python 应用程序路径的示例:

                        C:\Users\Ron\AppData\Local\Programs\Python\Python39
                        

                        5.检索到 Python 应用程序路径后,在命令提示符中键入以下命令:

                        cd 后跟您的 Python 应用程序路径

                        对于我们的示例:

                        C:\>cd C:\Users\Ron\AppData\Local\Programs\Python\Python39
                        

                        6.按回车

                        7.输入python -m pip install --upgrade pip并回车

                        【讨论】:

                          【解决方案20】:
                          pip install --upgrade pip
                          

                          在 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.
                          

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

                          pip install --upgrade pip --user
                          

                          【讨论】:

                            【解决方案21】:

                            前往您的命令提示符并输入以下内容:

                            python -m pip install --upgrade pip
                            

                            【讨论】:

                              【解决方案22】:

                              linux

                              我会用这段代码更新

                              sudo -H pip3 install --upgrade pip
                              

                              【讨论】:

                                猜你喜欢
                                • 1970-01-01
                                • 2021-09-26
                                • 1970-01-01
                                • 1970-01-01
                                • 2017-05-22
                                • 1970-01-01
                                • 2016-11-03
                                • 1970-01-01
                                • 2012-06-17
                                相关资源
                                最近更新 更多