Py2exe-GUI/docs/ROADMAP.md

130 lines
5.9 KiB
Markdown
Raw Normal View History

# 开发待办事项
2024-01-06 12:04:35 +08:00
此文档用于记录灵感,内容格式较为随意。其中的大部分功能将会逐渐实现,也有部分可能会被删去。
如果你对 Py2exe-GUI 的新功能有建议,欢迎[提交 issue](https://github.com/muziing/Py2exe-GUI/issues/new)。
## 控件
2024-01-06 12:04:35 +08:00
- [ ] PyInstaller 子进程窗口 `SubProcessDlg`
- [x] 将子进程的输出与状态显示至单独的对话框
- [x] 增加多功能按钮
- [x] 关闭窗口时中断子进程、清除输出
- [x] 处理不能正确显示子进程错误的问题(会被“打包完成”遮盖)
- [ ] 增加「将输出导出到日志文件」功能
2023-12-09 17:35:31 +08:00
- [ ] 增加简单高亮功能
2024-01-06 12:04:35 +08:00
- [x] 命令浏览器
- [x] 显示将传递给 PyInstaller 的选项列表
- [x] 高亮提示
- [x] 以终端命令格式显示完整命令,并添加续行符
- [ ] 导出为脚本功能,根据运行时平台导出 bash、PowerShell 等格式脚本
- [x] 添加资源文件窗口
2023-12-26 20:14:33 +08:00
- [x] `--add-data``--add-binary`
- [x] `--paths``--hidden-import` 等可多次调用的选项
2023-12-26 20:14:33 +08:00
- [x] 模仿 Windows “编辑环境变量” 窗口,左侧条目,右侧添加删除编辑等按钮
2024-01-02 15:32:08 +08:00
- [x] Python 解释器选择器
- [x] 文件浏览对话框选择解释器可执行文件
- [x] 处理解释器验证器返回结果,异常时弹出对话框要求用户自行检查确认
2024-01-19 11:11:58 +08:00
- [x] ComboBox 中列出各解释器,与全局变量 `ALL_PY_ENVs` 联动
2024-01-02 15:32:08 +08:00
- [ ] 右键菜单,可以将现有的环境 pin固定并保存到缓存文件中后续启动时自动加载
2023-12-26 20:14:33 +08:00
- [ ] 用户自定义选项输入框
- [ ] 允许用户自行输入选项,添加到选项列表中
- [x] ToolTip 提示,对应 PyInstaller 文档,提供完整帮助信息
2024-01-02 15:32:08 +08:00
- [x] `PyInstaller` 选项参数详解表格(界面细节待优化)
- [x] 主窗口状态栏显示软件版本
2023-12-09 17:35:31 +08:00
- [ ] 「一键调试」模式,自动选择 `--onedir``--console``--debug` 等利于调试的选项
2024-01-02 15:32:08 +08:00
- [ ] 用户设置窗口:若干个选项卡
2024-01-06 12:04:35 +08:00
- [ ] 界面语言
2024-01-02 15:32:08 +08:00
- [ ] PyInstaller 选项
- [ ] 导入/导出选项
2024-01-06 12:04:35 +08:00
- [ ] 插件(比如 Pillow 是否已安装、UPX 是否可用等)
2024-01-19 11:11:58 +08:00
- [ ] 创建虚拟环境向导窗口,通过若干个步骤引导用户创建新的 venv 环境与安装依赖
2024-01-06 12:04:35 +08:00
- [ ] 简洁视图(仅包含常用选项)/详细视图(包含所有 PyInstaller 可用选项) 切换
2024-01-19 11:11:58 +08:00
## 环境管理
- [x] 能够使用系统中的其他 Python 环境来进行打包
- [x] 创建「解释器环境类」,保存解释器路径等信息
- [x] 识别 系统解释器/venv/Poetry/conda 等
- [x] 将解释器环境保存在全局变量 `ALL_PY_ENVs`
- [ ] 识别是否已安装 PyInstaller未安装则提供「一键安装」
- [ ] 创建新的虚拟环境
- [ ] 使用 venv 创建新的虚拟环境
- [ ] 查找用户的 `requirements.txt` 文件,分析依赖需求
- [ ] 如未找到需求描述文件,则通过 [pipreqs](https://github.com/bndr/pipreqs) 分析生成
- [ ] 安装依赖项与 PyInstaller
## 打包
- [x] 选项参数获取
- [x] 将参数拼接成完整调用命令
- [x] 使用枚举值控制参数
- [x] 优化拼接代码
- [x] 调用 `PyInstaller` 子进程
- [x] 使用 `QProcess` 替代 `subprocess` 以解决界面卡死问题
2024-01-19 11:11:58 +08:00
- [x] 使用 Python 解释器直接运行命令,而不是 `PyInstaller.exe`
- [x] 优化子进程相关代码,增强异常处理
- [ ] 打包任务
- [x] 创建打包任务,保存所有选项
2024-01-06 12:04:35 +08:00
- [ ] 导出打包任务json 或 yaml 格式)与加载打包任务(与 [*Auto-py-to-exe*](https://github.com/brentvollebregt/auto-py-to-exe) 兼容?)
2024-01-19 11:11:58 +08:00
- [ ] 创建 [`.spec` 文件](https://pyinstaller.org/en/stable/man/pyi-makespec.html)
## 界面
- [x] 实现跨平台功能
2024-01-06 12:04:35 +08:00
- [x] 获取当前运行平台,保存至全局变量 `RUNTIME_INFO.platform`
- [x] 定制各平台特有功能
- [x] 使用 `qrc` 管理静态资源
2024-01-06 12:04:35 +08:00
- [x] 翻译与国际化
2024-01-19 11:11:58 +08:00
- [x] Qt 提供的界面文本自动翻译(待优化)
2023-12-17 20:37:48 +08:00
- [x] 自实现的不同语言下功能差异如“打开PyInstaller文档”指向不同的链接等
2024-01-02 15:32:08 +08:00
## 用户设置
2024-01-19 11:11:58 +08:00
- [ ] 在用户家目录中创建配置文件夹与配置文件YAML 格式),用于保存用户设置
2024-01-02 15:32:08 +08:00
- [ ] 设置条目:
2024-01-06 12:04:35 +08:00
- [ ] 界面语言
2024-01-19 11:11:58 +08:00
- [ ] 是否使用 `--clean` `--noconfirm` 选项(默认自动使用)
2024-01-02 15:32:08 +08:00
- [ ] 脚本导出格式(默认与当前平台对应,如 Windows 则为 PowerShell
## 应用程序级
- [x] 解决相对引用与作为包运行问题
2024-01-06 12:04:35 +08:00
- [ ] 缓存目录
- [ ] (?) 将用户使用过的 Python 环境保存到缓存文件中存储,下次启动时自动加载
- [ ] `logging` 日志记录 Py2exe-GUI 的运行过程
## 美化
- [ ] QSS 与美化
- [ ] 动画效果
2024-01-06 12:04:35 +08:00
- [ ] (?) 使用组件库
2023-12-09 17:35:31 +08:00
## 构建与分发
平台:
- [ ] Windows 发行版
2024-01-06 12:04:35 +08:00
- [ ] 创建[版本资源文件](https://muzing.gitbook.io/pyinstaller-docs-zh-cn/usage#bu-huo-windows-ban-ben-shu-ju)
2023-12-09 17:35:31 +08:00
- [ ] Linux 发行版
分发方式:
- [x] PyPI
2023-12-26 20:14:33 +08:00
- [x] GitHub Releases
2023-12-09 17:35:31 +08:00
- [ ] Arch Linux AUR
- [ ] Ubuntu PPA
2023-12-26 20:14:33 +08:00
## 可选依赖
2024-01-06 12:04:35 +08:00
- [ ] 在 PyPI 上提供“完整版”的发行,包含以下所有可选依赖项
2024-01-19 11:11:58 +08:00
- [x] “普通版”也要有能力检测用户是否已经安装了某个/些可选依赖项并能协同工作
2023-12-26 20:14:33 +08:00
- [ ] [Pillow](https://python-pillow.org/)
2024-01-19 11:11:58 +08:00
- [x] 更精确可靠的图标文件格式识别(根据图片二进制内容判断,而不只是文件扩展名)
2024-01-06 12:04:35 +08:00
- [ ] 在主窗口工具栏提供图像格式转换功能,将其他格式转换为平台对应的图标格式
2024-01-19 11:11:58 +08:00
- [ ] [pipreqs](https://github.com/bndr/pipreqs):作为后备选项,分析用户项目的依赖项
2024-01-06 12:04:35 +08:00
- [ ] [UPX](https://upx.github.io/)
- [ ] [仅限 Windows 平台](https://muzing.gitbook.io/pyinstaller-docs-zh-cn/usage#shi-yong-upx)
- [ ] 设法添加到运行时的环境变量 PATH 中
- [ ] 或者PyInstaller 命令中自动添加 `--upx-dir` 选项