面向 Windows Python 脚本库的桌面管理器。PyArsenal 将散落在不同目录中的小脚本整理为可扫描、可打标签、可选择解释器、可安装依赖和可打包的工具条目,并提供一套将旧脚本迁移到标准目录结构的静态分析流程。
当前仓库提供源码运行方式,尚未发布预编译安装包。
个人脚本积累到一定数量后,常见问题并不是“缺少启动按钮”,而是入口、依赖、资源文件和运行环境彼此不一致。PyArsenal 通过一个统一界面管理这些信息:
- 扫描指定工具目录,区分标准工具与缺少入口的非标准目录;
- 读取
tool.json中的名称、说明、标签和图标; - 以树状标签过滤工具,并支持创建、重命名、移动和删除标签;
- 保存多个 Python 环境,并为具体工具选择运行解释器;
- 分析 import,生成或更新
requirements.txt; - 调用 pip 安装依赖,调用 PyInstaller 构建 EXE;
- 从界面直接运行脚本,在内置终端区域显示过程日志;
- 导入外部脚本或目录,并为非标准项目提供结构化重构。
工具目录中的每个一级子目录都会被扫描。当前实现将存在 main.py 的目录视为可运行的标准工具;requirements.txt 与 tool.json 会参与依赖和元数据展示。
PythonTool/
└─ image-converter/
├─ main.py
├─ requirements.txt
├─ tool.json
├─ icon.png
├─ core/
├─ ui/
└─ resources/
tool.json 示例:
{
"name": "图片批处理",
"description": "批量调整图片尺寸并转换格式",
"entry": "main.py",
"tags": ["图像处理", "批处理"],
"icon": "icon.png",
"version": "1.0.0"
}没有 main.py 的目录仍会显示在列表中,并标记为非标准结构,方便进一步整理。
core/smart_refactor.py 使用 Python AST 对旧脚本目录做静态分析:
- 递归发现 Python 文件,并查找
if __name__ == "__main__"与main(); - 收集 import 关系;
- 识别代码中实际引用的图片、配置、数据、音视频、字体和前端资源;
- 创建统一的
main.py、core/、resources/与tool.json结构; - 复制被识别的本地模块和资源,并调整部分路径引用。
这是静态迁移工具,不等同于能够无条件重构任意 Python 项目。对动态 import、运行时拼接路径或外部服务依赖,迁移后仍需要人工检查;建议始终对脚本副本执行。
- Windows;
- Python 3.9 或更高版本;
- PySide6、pipreqs、PyInstaller。
git clone https://github.com/Ubik42/PyArsenal.git
cd PyArsenal
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt在仓库根目录创建 config.json,指定脚本库和默认解释器:
{
"python_tool_dir": "D:/PythonTool",
"default_python": "D:/PythonEnvs/default/python.exe"
}未提供 config.json 时,工具目录默认为仓库同级的 PythonTool,解释器命令默认为 python。
启动:
python main.py- 在“文件 → 导入工具”中导入脚本,或直接将工具目录放入
python_tool_dir; - 刷新后在中间列表选择工具;
- 在左侧建立标签树,将工具拖放到标签上完成归类;
- 在详情面板检查入口、依赖和结构状态;
- 选择 Python 环境后运行、安装依赖,或按需打包 EXE;
- 对非标准目录先查看问题提示,再在副本上执行“一键转为标准结构”。
main.py 程序入口
core/config.py 路径与应用配置
core/models.py Tool、PythonEnv 与 Tag 数据模型
core/tool_scanner.py 工具发现和结构检查
core/tool_importer.py 文件与目录导入
core/tag_manager.py 树状标签的持久化
core/env_manager.py Python 环境发现与配置
core/dependency_manager.py import 分析和 pip 安装
core/compiler.py PyInstaller 构建
core/smart_refactor.py 旧脚本静态分析与结构迁移
ui/ 主窗口、标签树、工具列表、详情和终端
STYLE_GUIDE.md 被管理工具的推荐结构约定
config.json、env_config.json和工具库路径属于本机配置,不应提交个人绝对路径;- 安装依赖和构建 EXE 会执行外部命令,运行前应确认所选 Python 环境与脚本来源;
- PyInstaller 的结果取决于目标脚本、动态资源和第三方包,并非所有工具都能无需调整直接打包;
- Smart Refactor 会复制和重组文件,应优先对有版本控制或可恢复的副本使用。
仓库当前没有提交许可证文件;复用代码前请先联系作者确认授权。