简介
Pip Integration Platform(PIP)是一个纯python+tkinter(sv-ttk)构建、开源、跨平台、现代样式风格的pip可视化管理应用,用于简化pip操作,涵盖功能有:
- 显示第三方库以及版本和介绍信息;
- 便捷安装、升级、卸载;
- 一键检查所有可更新第三方库,并可选择升级;
- 分析一个库的依赖项以及依赖该库的其它第三方库,并可显示当前无上层依赖关系的顶层第三方库。
开源地址:Pip Integration Platform。
特性
- 界面简洁,样式现代,操作便捷;
- 封装常用pip操作,提高信息呈现密度;
- 无需打包,直接使用,处理的库环境为运行python解释器的环境。
运行的python环境需额外安装
sv-ttk
:pip install sv-ttk
,用来优化tkinter本身界面,界面样式很大程度上影响使用效果。
使用
首页(库列表)
首页在启动时就会加载并显示所有安装的第三方库。
下方工具栏按钮中可以打开第三方库的文件位置(双击库名有同样效果)和主页,也可以选择对其卸载和依赖分析。
文件位置首先判断
top_level.txt
,然后判断RECORD
,因为PIP只打开一个文件夹,因此少部分库存在安装文件多,而导致显示不到核心文件夹的问题。第三方库主页从RECORD
获取。
第三方库的详细信息,不应当通过pip获取,所以这里也不再提供RECORD
内容的其它信息。
当库环境发生更改后,可重新检索(基于importlib.metadata
实现)。此外还可以直接点击检查全部可更新项目(基于pip
实现)。
升级&安装
此页面提供快捷的安装、升级功能封装,并可展示命令行返回信息。
除了直接输入,还可从可更新列表中选择第三方库直接升级。
卸载
此页面提供快捷卸载封装,展示命令行返回信息。
显示返回信息是为了让操作反馈详尽,相比于其它命令行操作,安装和卸载信息的密度较高,因此保留显示。
除了直接输入,还可从首页库列表中选择卸载。
检查更新
检查所有可更新的第三方库,通过选择需要的库快捷更新。该功能还可从首页执行。由于耗时较久,该功能为手动触发。
依赖分析
左侧为主要区域,显示一个第三方库的所有直接依赖项,以及使用该库的其它库。除了直接输入,还可从首页面选择库执行该功能。
双击任意库名,将会填入输入框,但不会直接分析。选中任何一个元素,可删除该元素所在的分析模块;也可以直接清空列表。
右侧可显示所有无上层依赖的顶级库。
该功能可用于了解模块间关系,在卸载第三方库时也有参考价值。
交互设计
信息密度
PIP的宗旨就是提高信息呈现密度,封装命令行操作不仅是简化操作动作(有时候也比不过纯键盘操作),更是提高操作衔接流畅度。例如,从库列表中即可选择第三方库卸载或分析依赖;在更新列表中直接选择第三方库进行更新;依赖分析列表通过双击元素实现不间断分析(此后的更新列表会进一步简化操作动作,双击即可更新)。
另外,第三方库的依赖关系分析被设计为在同一列表中,以树状图形式呈现,就是为了方便观察。并且顶层第三方库在单独列表中。
任务处理
每种任务是线性的。
PIP的所有任务均在线程池中运行,即使是执行“检查所有更新”也不影响软件使用。由于安装&升级、卸载、检查更新、依赖分析四个任务不太可能一起执行(貌似没有理由四个全在用),线程池工作数量设置为3个。
可在
./lib/operate/pip_threads.py
中修改。
开源地址:Pip Integration Platform。