[002] [Python3] 批量安装与卸载pip包的脚本分享

Python3
批量安装pip包
批量卸载pip包

talk is cheap, show you my code.

1 批量安装pip包

  • python代码pip_install.py
import os

try:
    with open('安装第三方包.txt', 'r') as libs:
        lib_list = libs.readlines()
    print('------------------开始安装------------------')
    for lib in lib_list:
        lib = lib.rstrip('\n')
        # popen创建一个管道,通过fork或者invoke一个子进程,然后执行command,返回FIFO数据流的文件对象,具有__enter__()与__exit()方法,是一个上下文管理器
        with os.popen('pip3 install ' + lib) as p:
            s = p.read()
        if (s.find('Successfully installed') != -1):  # 找到此语句说明安装成功
            print(lib + ' 安装成功!')
        else:
            if (s.find('Requirement already satisfied') != -1):
                print(lib + ' 已安装!')
            else:
                print(lib + ' 包名错误!')

    print('------------------所有包安装完成------------------')
    print('安装后的package列表如下:')
    os.system('pip list')
except:
    print('[安装第三方包.txt]文件不存在或文件名错误!')

os.system('pause')
  • 使用方法
    首先将.py文件打包成.exe文件,使用pyinstaller -F pip_install.py命令进行打包(不能加-w,加了就看不到命令运行窗口了),如何打包可以参考我的博客:pyinstaller项目打包成exe文件。然后将安装第三方包.txt与打包生成的pip_install.exe文件放到同一个文件夹下,其中.txt文件名称可在代码中修改,不修改的话必须使用此名称,生成的.exe文件的名称与.py文件一致(.py文件名称无所谓)。
    [002] [Python3] 批量安装与卸载pip包的脚本分享_第1张图片
    然后将需要安装的包的名称写入到安装第三方包.txt中,示例如下:
    [002] [Python3] 批量安装与卸载pip包的脚本分享_第2张图片
    其中tete是我故意写错的包名,下面双击pip_install.exe文件查看安装运行结果:
    [002] [Python3] 批量安装与卸载pip包的脚本分享_第3张图片
    可以看到tete包名错误未安装成功,其它包均安装成功(为了演示先前已批量卸载)

2 批量卸载pip包

  • python代码pip_uninstall.py
import subprocess, os

try:
    with open('卸载第三方包.txt', 'r') as libs:
        lib_list = libs.readlines()

    s = input('确定卸载所有包? (Y/N)\n')
    if s == 'Y' or s == 'y':
        print('------------------开始卸载------------------')
        for lib in lib_list:
            lib = lib.rstrip('\n')
            subprocess.run('pip3 uninstall ' + lib, universal_newlines=True, input='y')  # universal_newlines=True时,input输入为字符串,反之为二进制流
        print('------------------所有包卸载完成------------------')
        print('卸载后的package列表如下:')
        subprocess.run('pip list')
    elif s == 'N' or s == 'n':
        print('取消卸载')
    else:
        print('输入错误!')
except:
    print('[卸载第三方包.txt]文件不存在或文件名错误!')

os.system('pause')

注意:只有python3.5及以上版本才能使用subprocess.run方法。

  • 使用方法
    使用方法与上文一致,只需将需要卸载的包名称放入到卸载第三方包.txt中即可,下面开始演示。
    卸载第三方包.txt中的内容:
    [002] [Python3] 批量安装与卸载pip包的脚本分享_第4张图片
    双击pip_uninstall.exe后,输入yY开始卸载(nN取消卸载):
    [002] [Python3] 批量安装与卸载pip包的脚本分享_第5张图片

笔者已将生成好的.exe文件打包上传,需要的自取:批量安装与卸载pip包。没有积分的也可以去下方百度云链接中下载^ ^:https://pan.baidu.com/s/1M1cF5zv00tZnBwWeoFCSlA
提取码:7654

PS: 本人为python新手,代码中如有错误欢迎各位大佬指出!

END

你可能感兴趣的:(Python3,python,开发语言,后端)