Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyArsenal

面向 Windows Python 脚本库的桌面管理器。PyArsenal 将散落在不同目录中的小脚本整理为可扫描、可打标签、可选择解释器、可安装依赖和可打包的工具条目,并提供一套将旧脚本迁移到标准目录结构的静态分析流程。

当前仓库提供源码运行方式,尚未发布预编译安装包。

解决的问题

个人脚本积累到一定数量后,常见问题并不是“缺少启动按钮”,而是入口、依赖、资源文件和运行环境彼此不一致。PyArsenal 通过一个统一界面管理这些信息:

  • 扫描指定工具目录,区分标准工具与缺少入口的非标准目录;
  • 读取 tool.json 中的名称、说明、标签和图标;
  • 以树状标签过滤工具,并支持创建、重命名、移动和删除标签;
  • 保存多个 Python 环境,并为具体工具选择运行解释器;
  • 分析 import,生成或更新 requirements.txt
  • 调用 pip 安装依赖,调用 PyInstaller 构建 EXE;
  • 从界面直接运行脚本,在内置终端区域显示过程日志;
  • 导入外部脚本或目录,并为非标准项目提供结构化重构。

工具识别规则

工具目录中的每个一级子目录都会被扫描。当前实现将存在 main.py 的目录视为可运行的标准工具;requirements.txttool.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 的目录仍会显示在列表中,并标记为非标准结构,方便进一步整理。

Smart Refactor

core/smart_refactor.py 使用 Python AST 对旧脚本目录做静态分析:

  1. 递归发现 Python 文件,并查找 if __name__ == "__main__"main()
  2. 收集 import 关系;
  3. 识别代码中实际引用的图片、配置、数据、音视频、字体和前端资源;
  4. 创建统一的 main.pycore/resources/tool.json 结构;
  5. 复制被识别的本地模块和资源,并调整部分路径引用。

这是静态迁移工具,不等同于能够无条件重构任意 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

基本使用流程

  1. 在“文件 → 导入工具”中导入脚本,或直接将工具目录放入 python_tool_dir
  2. 刷新后在中间列表选择工具;
  3. 在左侧建立标签树,将工具拖放到标签上完成归类;
  4. 在详情面板检查入口、依赖和结构状态;
  5. 选择 Python 环境后运行、安装依赖,或按需打包 EXE;
  6. 对非标准目录先查看问题提示,再在副本上执行“一键转为标准结构”。

工程结构

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.jsonenv_config.json 和工具库路径属于本机配置,不应提交个人绝对路径;
  • 安装依赖和构建 EXE 会执行外部命令,运行前应确认所选 Python 环境与脚本来源;
  • PyInstaller 的结果取决于目标脚本、动态资源和第三方包,并非所有工具都能无需调整直接打包;
  • Smart Refactor 会复制和重组文件,应优先对有版本控制或可恢复的副本使用。

License

仓库当前没有提交许可证文件;复用代码前请先联系作者确认授权。

About

一个专为 Python 脚本开发者设计的图形化管理工具。它可以帮助你整理分散在各处的 Python 脚本,通过标签化、环境隔离和一键编译,让你的脚本库变得井然有序。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages