Quickstart

🧰 Python 包管理器 GUI

一个基于 Tkinter 的图形化 pip 管理工具,方便用户在界面中查看、搜索、更新和卸载 Python 包。


🚀 功能概览

功能
描述

📋 包列表

显示所有已安装的 pip 包及其版本

🔍 搜索

按包名实时过滤显示结果

🕐 检查更新

自动检测哪些包有更新版本

⏫ 一键更新

批量更新所有过时包

🧩 版本选择

为单个包显示所有可用版本,支持安装、降级、重新安装

❌ 卸载

卸载选定的包

⚙️ pip 源查看

显示当前 pip 使用的索引源(PyPI 镜像)

📜 日志

显示所有 pip 命令的详细输出结果

🧵 多线程

所有 pip 操作在后台执行,界面不会卡顿


🖼️ 界面布局

主要界面元素:

  • 表格 (Treeview):显示包名与当前版本

  • 搜索框:输入包名可实时筛选

  • 按钮区

    • 安装选定版本

    • 卸载包

    • 检查更新

    • 仅显示过时包 / 显示所有包

    • 更新全部

    • 切换源

  • 日志区 (ScrolledText):显示 pip 命令输出与状态信息


⚙️ 主要模块说明

1️⃣ 包数据获取

  • get_installed_packages() 读取系统中所有已安装 pip 包的名称与版本。

  • get_latest_version(pkg_name) 调用 pip index versions 获取最新版本,带缓存机制。

  • parse_pip_index_versions() 解析 pip 命令输出,提取出版本号列表,防止格式差异导致失败。


2️⃣ GUI 表格管理

  • populate_table() 填充包表格数据,可显示“所有包”或“仅过时包”。

  • search_packages() 根据输入的关键字实时过滤包列表。

  • on_tree_select() / place_combobox() 在表格中显示版本下拉框,让用户选择特定版本。


3️⃣ pip 命令执行与日志

  • run_pip_command_threaded() 在线程中运行 pip 安装/卸载命令,避免界面冻结。

  • update_all_packages_threaded() 批量更新所有过时包(逐个执行 pip install --upgrade)。

  • update_log(message) 向日志区域追加输出。

  • command_finished() 命令执行结束后刷新包列表或恢复按钮状态。


4️⃣ 按钮与状态控制

  • disable_buttons() / enable_buttons() 防止在操作过程中重复点击。

  • update_gui_after_refresh() 刷新 GUI 显示最新包状态。

  • update_combobox_position() 当表格滚动或界面变化时重新定位下拉框。


💡 设计特点

  • 多线程防卡顿

  • 自动刷新安装状态

  • 缓存版本查询结果(5分钟有效)

  • 支持命令超时与错误处理

  • 详细日志输出,便于排错

  • 可跨平台运行


🖥️ 使用方式

运行

最后更新于