7.0 KiB
7.0 KiB
EG 项目打包清单
本文档详细说明安装程序中包含的内容,以及打包决策依据。
📦 打包内容总览
代码部分 (由 Nuitka 编译)
| 入口文件 | 处理方式 | 说明 |
|---|---|---|
Start_Run.py |
编译为主程序 | 应用入口 |
main.py |
被导入编译 | 主程序逻辑 |
core/ |
编译进可执行文件 | 核心模块 |
gui/ |
编译进可执行文件 | GUI模块 |
project/ |
编译进可执行文件 | 项目管理 |
scene/ |
编译进可执行文件 | 场景管理 |
ssbo_component/ |
编译进可执行文件 | SSBO组件 |
tools/ |
编译进可执行文件 | 工具模块 |
TransformGizmo/ |
编译进可执行文件 | 变换工具 |
ui/ |
编译进可执行文件 | UI模块 |
数据资源 (复制到输出目录)
| 目录/文件 | 用途 | 必要性 |
|---|---|---|
config/ |
配置文件 | ✅ 必须 |
icons/ |
图标资源 | ✅ 必须 |
RenderPipelineFile/ |
渲染管线 | ✅ 必须 |
Resources/ |
资源文件 | ✅ 必须 |
scripts/ |
脚本系统 | ✅ 必须 |
templates/ |
项目模板 | ✅ 必须 |
tex/ |
纹理资源 | ✅ 必须 |
vr_actions/ |
VR配置 | ✅ 必须 |
imgui.ini |
ImGui配置 | ✅ 必须 |
⚠️ 需要确认的问题
问题 1: project/ 目录
现状: 当前配置中 未包含 project/ 目录
分析:
project/包含project_manager.py,webgl_packager.py,__init__.pymain.py中导入:from project.project_manager import ProjectManager
结论: ⚠️ 必须包含! 否则项目管理功能无法工作
建议操作: 添加到 DATA_DIRECTORIES
DATA_DIRECTORIES = [
# ... 现有目录 ...
"project", # 添加此行
]
问题 2: new/ 目录
现状: 当前配置中 未包含
分析:
- 包含
project.json(空项目模板) - 可能是"新建项目"的默认模板
结论: ✅ 建议包含 作为默认项目模板
建议操作: 添加到 DATA_DIRECTORIES
问题 3: test_project/ 目录
现状: 当前配置中 未包含
分析:
- 包含示例
project.json - 可用于演示功能
选项:
- 不包含 - 减小安装包体积
- 包含为可选组件 - 用户可选择安装
- 包含 - 方便新用户学习
建议: 选项 1 或 3,根据安装包大小决定
问题 4: Python 缓存文件
现状: 已排除 __pycache__, *.pyc, *.pyo, *.pyd
分析: ✅ 正确,这些是由 Python 运行时生成的缓存,不需要分发
问题 5: 开发环境文件
现状: 已排除 .git, .gitignore, .idea, .vscode
分析: ✅ 正确,这些是开发环境配置,用户不需要
问题 6: 构建脚本
现状: build_scripts/ 未包含
分析: ✅ 正确,构建脚本不需要分发给最终用户
问题 7: 依赖文件
现状: requirements/ 未包含
分析:
- 最终用户不需要
requirements.txt(依赖已编译进可执行文件) - 但如果提供 SDK/开发套件,可能需要
结论: ✅ 当前处理正确
🔧 修正后的配置
更新 DATA_DIRECTORIES
# ==================== 数据文件配置 ====================
# 需要包含的目录 (相对于项目根目录)
DATA_DIRECTORIES = [
# 配置和资源
"config",
"icons",
"Resources",
"tex",
"templates",
# 核心模块 (这些目录中的 .py 文件会被编译,但可能包含非 .py 资源)
"core", # 核心功能
"gui", # GUI相关
"project", # ⚠️ 新增: 项目管理 (包含非代码资源)
"scene", # 场景管理
"scripts", # 脚本系统
"ssbo_component", # SSBO编辑器
"tools", # 工具模块
"TransformGizmo", # 变换Gizmo
"ui", # UI模块
# 引擎和扩展
"RenderPipelineFile", # 渲染管线
"vr_actions", # VR配置
# 示例和模板
"new", # ⚠️ 新增: 默认项目模板
# "test_project", # 可选: 示例项目
]
Nuitka 包含包确认
当前配置:
"include_packages": [
"Panda3D",
"direct",
"imgui_bundle",
"p3dimgui",
"openvr",
"PIL",
"yaml",
"psutil",
],
需要添加:
- 检查
requirements.txt中的其他依赖是否需要显式包含
📊 打包体积预估
| 目录 | 估算大小 | 说明 |
|---|---|---|
RenderPipelineFile/ |
~50-100 MB | 渲染管线核心 |
Resources/ |
可变 | 用户资源 |
tex/ |
~10-50 MB | 默认纹理 |
icons/ |
~1-5 MB | 图标 |
| 其他代码目录 | ~5-10 MB | Python 源文件(编译前) |
| 总计 | ~100-200 MB | 不含用户资源 |
✅ 打包检查清单
构建前请确认
目录配置
config/- 配置目录 ✅core/- 核心模块 ✅gui/- GUI模块 ✅icons/- 图标资源 ✅project/- 项目管理 ✅ (已添加)RenderPipelineFile/- 渲染管线 ✅Resources/- 资源文件 ✅scene/- 场景管理 ✅scripts/- 脚本系统 ✅ssbo_component/- SSBO组件 ✅templates/- 模板 ✅tex/- 纹理 ✅tools/- 工具 ✅TransformGizmo/- 变换工具 ✅ui/- UI模块 ✅vr_actions/- VR配置 ✅new/- 默认项目模板 ✅ (已添加)
文件检查
icons/app.ico- Windows图标 ⚠️ 需要添加icons/app.png- Linux图标 ⚠️ 需要添加imgui.ini- ImGui配置 ✅Start_Run.py- 入口脚本 ✅main.py- 主程序 ✅
清理检查
- 排除了所有
__pycache__和.pyc文件 ✅ - 排除了开发环境文件 (
.idea,.vscode) ✅ - 排除了构建目录 (
build_scripts,dist,build) ✅ - 排除了
.git目录 ✅
功能验证
- 测试构建成功
- 测试安装程序能正常运行
- 测试便携版能正常运行
- 验证项目管理功能正常
- 验证新建项目功能正常
🧪 验证方法
构建完成后,验证以下内容:
# Windows
# 1. 检查输出目录结构
tree /f dist\EG_1.0.0
# 2. 运行程序测试基本功能
dist\EG_1.0.0\EG.exe
# 3. 检查关键文件是否存在
Test-Path dist\EG_1.0.0\config
Test-Path dist\EG_1.0.0\Resources
Test-Path dist\EG_1.0.0\scripts
# Linux
# 1. 检查 AppImage 内容
./dist/EG-1.0.0-x86_64.AppImage --appimage-mount
# 2. 运行测试
./dist/EG-1.0.0-x86_64.AppImage
🔒 安全注意事项
- 代码保护: Nuitka 编译后的机器码难以逆向,但资源文件(模型、纹理)是明文的
- 敏感配置: 确保
config/中没有包含 API 密钥等敏感信息 - 许可证: 如果包含第三方资源,确保许可证允许再分发
文档版本: 1.0
最后更新: 2024年