卸载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)
上一篇 2022年10月16日 下午4:36
下一篇 2022年10月16日 下午4:46


相关推荐

  • ADC0使用注意

    ADC0使用注意注意点 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1 ADC0 的 SAR 转换时钟周期最大为 3MHz 比如系统时钟 48MHz 那么 ADC0CF 0x7F AD0SC4 0 B01111 2 ADC0 使能 AD0EN 1 后 要至少延时 500ms 再开始 ADC0 转换

    2026年2月6日
    2
  • SaltStack Grains 使用指南

    SaltStack Grains 使用指南GRAINSSalt 提供了一个接口 用于获取被管理系统的有关信息 这被称为 grainsinterf 因为它为 salt 提供 grains 信息 Grains 信息涉及操作系统 域名 IP 地址 内核 操作系统类型 内存和许多其他系统属性 Salt 模块和组件可以利用 grain 接口 以在正确的系统上自动地获得正确的 saltminion 命令参数 Grains 数据是相对静态的 但如果系统信息发生

    2026年3月19日
    2
  • Python字典查找报Keyerror解决方法

    Python字典查找报Keyerror解决方法Python 的字典一般都直接查找 key 比如 dict a 1 b 2 c 3 print dict a 但是如果在查找的 key 不存在的时候就会报 KeyError 比如你要查看 print dict d 由于这个时候 dict 里面并没有这个 key 所以就会直接报错 那么这个时候其实 python 给我们提供了一种很棒的解决方法 那就是用 setdefa

    2026年3月26日
    3
  • 正则过滤内网地址和网段不一致_ip地址不是局域网网段的ip

    正则过滤内网地址和网段不一致_ip地址不是局域网网段的ip1.问题描述我要过滤出ABC类内网地址和CIDR格式的内网IP段主要是以下段1.A类地址:10.0.0.0~10.255.255.2552.B类地址:172.16.0.0~172.31.255.2553.C类地址:192.168.0.0~192.168.255.2552.解决问题正则表达式:^(10\.\d{1,3}\.\d{1,3}\.((0\/([89]|1[0-9]|2\d|3[012]))|(\d{1,3})))|(172\.(1[6789]|2\\d|3[01])\.\d{1,3

    2025年11月18日
    6
  • System.setProperty() 学习「建议收藏」

    System.setProperty() 学习「建议收藏」/**设置指定键对值的系统属性*setProperty(Stringprop,Stringvalue);**参数:*prop-系统属性的名称。*value-系统属性的值。**返回:*系统属性以前的值,如果没有以前的值,则返回null。**抛出:*SecurityExceptio

    2022年7月13日
    60
  • 【无标题】ubuntu 18.04安装edge浏览器「建议收藏」

    【无标题】ubuntu 18.04安装edge浏览器「建议收藏」ubuntu18.04安装edge浏览器第一步:sudoaptupdatesudoaptinstallsoftware-properties-commonapt-transport-httpswget第二步,使用以下命令导入MicrosoftGPG密钥wget:wget-qhttps://packages.microsoft.com/keys/microsoft.asc-O-|sudoapt-keyadd-第三步,并通过键入以下命令启用Edge浏览器存储库

    2022年7月21日
    21

发表回复

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

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