卸载pip包并卸载其依赖包[通俗易懂]

卸载pip包并卸载其依赖包[通俗易懂]原创工具程序,卸载指定的pip包并递归卸载其依赖包使用方法:将以下代码保存为pip_uninst_rec.py,执行pythonpip_uninst_rec.py<pkg>即可importargparseimportosfromcollectionsimportdequeimportpip._internal.commands.showasshow_cmddefmain():parser=argparse.ArgumentParser(des

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

原创工具程序,卸载指定的pip包并递归卸载其依赖包

使用方法:将以下代码保存为pip_uninst_rec.py,执行python pip_uninst_rec.py <pkg>即可

import argparse
import os
from collections import deque

import pip._internal.commands.show as show_cmd


def main():
    parser = argparse.ArgumentParser(description='卸载pip包,并卸载其依赖包')
    parser.add_argument('package', help='要卸载的包')
    args = parser.parse_args()

    q = deque()
    try:
        q.append(next(show_cmd.search_packages_info([args.package]))['name'])
    except StopIteration:
        return
    uninstalled = set()
    while q:
        pkg = q.popleft()
        pkg_info = next(show_cmd.search_packages_info([pkg]))
        os.system('pip uninstall -y ' + pkg)
        uninstalled.add(pkg)
        for dependency_info in show_cmd.search_packages_info(pkg_info['requires']):
            if not set(dependency_info['required_by']) - uninstalled:
                q.append(dependency_info['name'])


if __name__ == '__main__':
    main()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181313.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ClassIn 退出专注学习模式 关闭专注学习模式「建议收藏」

    ClassIn 退出专注学习模式 关闭专注学习模式「建议收藏」ClassIn是一个常用的在线上课软件,从3.0.2.130开始推出了“专注学习模式”,窗口会全屏且不能切换窗口。可有时我们有其他需要,要退出专注学习模式,这时就要使用其它的方法了。这里提供一个我自己做的小程序。

    2022年5月24日
    105
  • 千百撸

    千百撸千百撸(黄网)

    2022年8月2日
    25
  • k8s–证书签发

    k8s–证书签发1.准备签发证书环境运维主机hdss-1-200.host.com上:2.安装CFSSL证书签发工具CFSSL:R1.2cfssl下载地址https://pkg.cfssl.org/R1.2/cfssl_linux-amd64cfssl-json下载地址https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64cfssl-certinfo下载地址https://pkg.cfssl.org/R1.2/cfssl-certinfo_li…

    2022年5月9日
    95
  • Java基础之int和Integer有什么区别

    Java基础之int和Integer有什么区别1int与Integer的基本使用对比(1)Integer是int的包装类;int是基本数据类型;(2)Integer变量必须实例化后才能使用;int变量不需要;(3)Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值;(4)Integer的默认值是null;int的默认值是0。2int与Integer的深入对比(1)由于In…

    2022年7月16日
    17
  • 联想笔记本电脑键盘灯怎么开启_【普通背光键盘灯怎么开】联想键盘背光灯怎么开_背光键盘怎么开…「建议收藏」

    联想笔记本电脑键盘灯怎么开启_【普通背光键盘灯怎么开】联想键盘背光灯怎么开_背光键盘怎么开…「建议收藏」2017-08-1611:53:02现在,联想/华硕/惠普多款笔记本电脑都自带了键盘背光灯功能,这样用户在夜间或暗淡环境下作业就会更加方便!不过,很多朋友表示并不懂得如何开启键盘背光灯,该怎么办呢?接下来,小编就以w…2018-03-1317:42:32现在,大多数笔记本电脑都自带了键盘背光灯功能,开启这个功能之后我们就能在黑暗环境下更好地使用电脑了,十分地炫酷。那么,笔记本键盘灯怎么打开…

    2026年2月1日
    3
  • 时滞微分方程是什么_时滞微分方程教学大纲

    时滞微分方程是什么_时滞微分方程教学大纲考虑下面的变时滞微分方程试绘制上述含有时变时滞微分方程的图像分析:该方程应该在某个t0时间之后成立,初始值必须是定义在t0之前的一个关于t的单值向量函数phi(t)。我假设t0=0吧,phi(t)=[1;-1];matlab程序:functionddeext0=0;tfinal=5;tspan=[t0,tfinal];sol=dd

    2022年9月30日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号