卸载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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python numpy.transpose 详解「建议收藏」

    Python numpy.transpose 详解「建议收藏」前言看Python代码时,碰见numpy.transpose用于高维数组时挺让人费解,通过一番画图分析和代码验证,发现transpose用法还是很简单的。正文Numpy文档numpy.transpose中做了些解释,transpose作用是改变序列,下面是一些文档Examples:代码1:x=np.arange(4).reshape((2,2))输出1:#x为:array(

    2022年5月5日
    48
  • linux查看文件权限修改记录_文件修改记录

    linux查看文件权限修改记录_文件修改记录1、从文件类型上分可分为三种,   用ls-l查询,以“一”开头的是文件,以字母“d”开头的是目录(俗称文件夹),以字母“l”开头的是连接。 2、剩下的9个分别三个为一组每一组都有四种符号组成分别是“r”,“w”,“x”,“-”。    r(read):代表读的权限    w(write):代表写的权限    x(execuite):

    2022年9月11日
    0
  • zergRush (CVE-2011-3874) 提权漏洞分析

    zergRush (CVE-2011-3874) 提权漏洞分析转战Android试水老洞,zergRush(CVE-2011-3874)ROOT提权漏洞原理的技术分析。

    2022年7月2日
    22
  • Maven工具安装

    Maven工具安装

    2021年6月3日
    94
  • PHP header() 函数

    PHP header() 函数

    2021年8月25日
    67
  • Redmi Note 10pro参数_小米note10pro配置

    Redmi Note 10pro参数_小米note10pro配置RedmiNote10Pro采用了旗舰级外观设计,193g超轻体量却内藏5000mAh大电量,还有三款绝美配色。「幻青」如阳光照耀下的海洋,碧波荡漾;「月魄」如夜晚澄空里的明月,流光皎洁;「星砂」如浩瀚苍穹中的星光,璀璨闪耀。红米手机爆降880这活动太给力了机会不容错过http://xiaomi.adiannao.cn/1RedmiNote10Pro搭载四主镜头,分别为1.08亿像素的广角主镜头、800万像素的超广角镜头、500万像素的长焦微距镜头和200万像素的景深镜

    2022年8月10日
    21

发表回复

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

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