【问题标题】:Is there a way to uninstall multiple packages with pip?有没有办法用 pip 卸载多个包?
【发布时间】:2012-03-13 10:47:15
【问题描述】:

我正在尝试删除所有已安装的以“pyobjc-framework”为前缀的软件包。我尝试了以下方法:

% pip freeze | grep pyobjc-framework | xargs pip uninstall 

但这很糟糕,因为每个 pip 卸载都需要确认(也许一种绕过它的方法是一种解决方案)。

请在我不得不手动分解和卸载它们之前提供帮助!没有人想要那样。

【问题讨论】:

    标签: python pip xargs


    【解决方案1】:

    将 grep 输出重定向到新文件并运行。

     pip uninstall -r <file name>
    

    我认为有效。

    pip freeze | grep pyobjc > packages_to_remove.txt
    sudo pip uninstall -y -r packages_to_remove.txt
    

    【讨论】:

    • 呃,对不起。 pip freeze | grep pyobjc &gt; packages_to_remove.txt; sudo pip uninstall -y -r packages_to_remove.txt 应该这样做。注意,当同时使用 -r 标志和文件参数时,-y 标志必须放在第一位。呵呵。
    【解决方案2】:

    如果您将-y | --yes 标志添加到 pip 中,您的命令应该可以正常工作 :-)

    -y, --yes 不要求确认卸载删除。

    可能:

    % pip freeze | grep pyobjc-framework | xargs pip uninstall -y

    【讨论】:

    • 宾果游戏。 -y 是我需要的标志。我还需要 xargs 一次传递一个参数,所以我的最终命令如下所示:% pip freeze | grep pyobjc-framework | xargs -n 1 sudo pip uninstall -y 谢谢!
    【解决方案3】:

    我总是用这个:

    pip freeze | xargs pip uninstall -y
    

    【讨论】:

      【解决方案4】:

      greping pip freeze 返回:

      Usage:   
        pip uninstall [options] <package> ...
        pip uninstall [options] -r <requirements file> ...
      
      no such option: -e
      

      所以我改为使用pip list

      $ pip list | grep tempest | xargs pip uninstall -y
      
      Uninstalling neutron-tempest-plugin-0.0.0:
        Successfully uninstalled neutron-tempest-plugin-0.0.0
      Uninstalling octavia-tempest-plugin-0.0.0:
        Successfully uninstalled octavia-tempest-plugin-0.0.0
      Uninstalling tempest-19.0.1.dev152:
        Successfully uninstalled tempest-19.0.1.dev152
      

      【讨论】:

        【解决方案5】:

        只需将这些包准备为列表:

        pip uninstall <list of requirement> -y
        e.g.:
        pip uninstall  termcolor, imgviz, matplotlib, PyYAML, qtpy, Pillow, colorama, PyQt5, numpy -y
        

        例如:用pip卸载依赖包,分三步:

        1. 显示依赖列表
        2. 移除包
        3. 删除它的依赖列表(从 1 复制它。)
        详情:
         1. pip show <package>
        
            e.g.:
            pip show labelme
            ...
            Requires: termcolor, imgviz, matplotlib, PyYAML, qtpy, Pillow, colorama, PyQt5, numpy
            ...
        
         2. pip uninstall <package>
            e.g.
            pip uninstall labelme
        
         3. pip uninstall <list of requirement> -y
            e.g.:
            pip uninstall  termcolor, imgviz, matplotlib, PyYAML, qtpy, Pillow, colorama, PyQt5, numpy -y
        

        【讨论】:

        • 我怀疑您可以用逗号分隔名称。你 100% 确定吗?
        • 是的,它至少适用于 ubuntu 20.04、python 3.9 和 pip 20.3.3
        • 好吧,也许吧,不知道为什么会这样。也不确定为什么要推荐这种不寻常的符号。为什么不坚持标准符号?
        • 在某些情况下,做这些细节很重要:例如查看需求文件中的内容时更快
        【解决方案6】:

        最简单的方法。使用删除所有torch 相关包,例如:

        pip uninstall `pip freeze | grep torch`
        

        【讨论】:

          猜你喜欢
          • 2013-01-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-03
          • 2019-01-12
          • 2014-09-06
          • 1970-01-01
          • 2010-11-28
          相关资源
          最近更新 更多