Python之pip图形化(GUI界面)辅助管理工具

Python之pip图形化(GUI界面)辅助管理工具

pip 是 Python 的包管理工具,用于安装、管理、更新和卸载 Python 包(模块)。用于第三方库的安装和管理过程,是 Python 开发中不可或缺的工具。

包的安装、更新、卸载,查看,特别是当用户安装有多个版本的Python时,为特定版本进行这些操作。还可以使用镜像加速安装。

默认情况下,pip 会从 PyPI 下载包。如果你在中国大陆,可能会因为网络问题导致下载速度较慢。可以设置使用国内的镜像源。

有关详情可见:https://blog.csdn.net/cnds123/article/details/104393385

对于新手而言,还是比较麻烦的。

为此,提供一个pip图形化(GUI界面)辅助管理工具

首先搜索出电脑上安装的python版本及路径放在列表中,用户点击哪个就列出哪个版本中已安装的包。所有耗时操作添加了操作前的提示信息,并在操作结束后显示明确的结果。

“列出python”按钮,提供计算机中安装所有python版本(含路径)

“安装包”按钮,提供对话框输入包名进行安装

“包卸载”按钮,可卸载选中的Python包

“包升级”按钮,可升级选中的Python包到最新版本

“镜像源”按钮,出现内置清华、阿里云、腾讯云和官方源等多个镜像源,用于选择

“刷新”按钮,用于列表中显示刚刚安装的包

为了便于用户使用,添加的帮助功能,使用 HTML 格式美化帮助内容。

运行效果如下:

这个工具,利用了多个模块/包/库:

sys(提供与 Python 解释器强相关的功能)、os(提供操作系统相关功能)、subprocess(用于运行外部命令或程序)、json(用于处理 JSON 数据)、shutil(提供文件和文件集合的高级操作)、datetime (用于处理日期和时间),这些都是 Python 的标准库,不需要安装。

PyQt6 是一个功能强大的 GUI 框架,适用于开发复杂的桌面应用程序。通过安装 PyQt6,你可以导入其中的模块来构建用户界面。

源码如下:

import sys
import os
import subprocess
import json
import shutil
from datetime import datetime

# PyQt6模块导入
from PyQt6.QtWidgets import (
    QApplication, QMainWindow, QWidget, QPushButton, QVBoxLayout, QHBoxLayout,
    QListWidget, QListWidgetItem, QLabel, QDialog, QFormLayout, QLineEdit,
    QDialogButtonBox, QMessageBox, QTextEdit, QRadioButton, QButtonGroup,
    QStatusBar, QSplitter, QTabWidget
)
from PyQt6.QtCore import Qt, QSize
from PyQt6.QtGui import QColor, QAction


class PipManager(QMainWindow):
    """PIP图形化管理工具主窗口类"""

    def __init__(self):
        super().__init__()
        
        # 窗口基本设置
        self.setWindowTitle('Python PIP图形化管理工具')
        self.setGeometry(100, 100, 800, 600)
        
        # 初始化成员变量
        self.python_installations = []  # 存储Python安装信息
        self.current_python = None      # 当前选中的Python
        self.installed_packages = []    # 当前Python已安装的包
        self.current_mirror = None      # 当前使用的镜像源
        
        # 初始化镜像源配置
        self.mirrors = {
            "清华": "https://pypi.tuna.tsinghua.edu.cn/simple",
            "阿里云": "https://mirrors.aliyun.com/pypi/simple",
            "腾讯云": "https://mirrors.cloud.tencent.com/pypi/simple",
            "官方源": "https://pypi.org/simple"
        }
        
        # 初始化UI
        self.init_ui()
        
        # 加载配置
        self.load_config()
        
        # 显示欢迎信息
        self.info_text.setText("欢迎使用Python PIP图形化管理工具\n\n"
                             "请点击「列出Python」按钮扫描系统中的Python安装\n"
                             "或者直接选择上方列表中的Python版本开始管理")
        
        # 加载Python安装列表
        self.find_python_installations()

    def init_ui(self):
        """初始化用户界面组件"""
        # 创建主窗口部件
        main_widget = QWidget()
        self.setCentralWidget(main_widget)

        # 创建菜单栏
        self.init_menu_bar()
    
        # 主布局
        main_layout = QVBoxLayout()
        main_widget.setLayout(main_layout)
        
        # 上方部分 - Python版本列表
        python_group = QWidget()
        python_layout = QVBoxLayout()
        python_group.setLayout(python_layout)
        
        python_label = QLabel('已安装的Python列表')
        python_layout.addWidget(python_label)
        
        self.python_list = QListWidget()
        self.python_list.setMinimumHeight(140)  # 设置最小高度
        self.python_list.setMaximumHeight(200)  # 设置最大高度
        self.python_list.itemClicked.connect(self.on_python_selected)
        python_layout.addWidget(self.python_list)
        
        main_layout.addWidget(python_group)
        
        # 按钮工具栏
        button_layout = QHBoxLayout()
        
        self.list_python_btn = QPushButton('列出Python')
        self.list_python_btn.clicked.connect(self.find_python_installations)
        button_layout.addWidget(self.list_python_btn)
        
        self.install_pkg_btn = QPushButton('安装包')
        self.install_pkg_btn.clicked.connect(self.install_package)
        button_layout.addWidget(self.install_pkg_btn)
        
        self.uninstall_pkg_btn = QPushButton('卸载包')
        self.uninstall_pkg_btn.clicked.connect(self.uninstall_package)
        button_layout.addWidget(self.uninstall_pkg_btn)
        
        self.upgrade_pkg_btn = QPushButton('升级包')
        self.upgrade_pkg_btn.clicked.connect(self.upgrade_package)
        button_layout.addWidget(self.upgrade_pkg_btn)
        
        self.mirror_btn = QPushButton('设置镜像源')
        self.mirror_btn.clicked.connect(self.show_mirror_dialog)
        button_layout.addWidget(self.mirror_btn)
        
        self.refresh_btn = QPushButton('刷新')
        self.refresh_btn.clicked.connect(self.refresh_package_list)
        button_layout.addWidget(self.refresh_btn)
        
        # 添加帮助按钮
        self.help_btn = QPushButton('帮助')
        self.help_btn.clicked.connect(self.show_help)
        button_layout.addWidget(self.help_btn)
        
        main_layout.addLayout(button_layout)
         
        # 下方分割区域:包列表和信息显示
        splitter = QSplitter(Qt.Orientation.Horizontal)
        
        # 左侧 - 已安装包列表
        package_group = QWidget()
        package_layout = QVBoxLayout()
        package_group.setLa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值