建模程序 多个定时程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

3.3 KiB

打包说明

方法一:使用 Python 脚本打包(推荐)

Windows

python build_exe.py

打包后清理临时文件

python build_exe.py --clean

仅清理临时文件

python build_exe.py --clean-only

方法二:使用批处理文件(Windows)

直接双击运行 build_exe.bat 或在命令行执行:

build_exe.bat

方法三:手动使用 PyInstaller

# 安装 PyInstaller(如果未安装)
pip install pyinstaller

# 打包
pyinstaller --name=factory_sliceing --onefile --console --clean main.py

使用打包后的 exe

打包完成后,exe 文件位于 dist/factory_sliceing.exe

使用方法:

factory_sliceing.exe <command> <work_dir>

可用命令:

  • batch_dwonload - 批量下载
  • begin_sliceing - 开始切片
  • download_zip - 下载压缩包

示例:

factory_sliceing.exe begin_sliceing C:\work\data

注意事项

  1. 依赖项: 确保所有依赖已安装(redis, oss2, requests, uiautomation, pywin32 等)
  2. 隐藏导入: 打包脚本已自动包含常见模块(uiautomation, win32gui 等),如果运行时仍提示模块未找到,可以在 build_exe.py 中添加 --hidden-import 参数
  3. 数据文件:
    • small_machine_transform.py 已自动包含在打包脚本中(作为数据文件)
    • 如果项目需要其他配置文件或数据文件,需要添加 --add-data 参数
  4. 文件大小: 打包后的 exe 文件可能较大(通常 50-200MB),这是正常的,因为包含了 Python 解释器和所有依赖
  5. uiautomation: 已自动包含在打包脚本中,使用 --collect-all=uiautomation 确保完整打包
  6. small_machine_transform.py: 已自动包含在打包脚本中,会被 Blender 作为外部脚本调用

故障排除

问题:打包后 exe 无法运行

  • 检查是否所有依赖都已正确安装
  • 尝试在命令行运行 exe 查看错误信息
  • 检查是否有隐藏导入的模块未添加

问题:模块未找到错误(如 uiautomation, win32gui, minio)

  • 已修复:
    • uiautomation 模块已添加到打包脚本中,使用 --collect-all=uiautomation
    • win32gui 等 pywin32 模块已添加,使用 --collect-all=pywin32 确保包含所有 DLL 文件
    • minio 模块已添加,使用 --collect-all=minio 确保包含所有子模块
  • 如果遇到其他模块未找到,在 build_exe.py 中添加对应的 --hidden-import 参数
  • 或者使用 --collect-all=<模块名> 参数收集所有子模块和 DLL 文件
  • 常见问题模块:uiautomation, win32gui, win32con, win32api, win32process, psutil, minio
  • 注意:
    • pywin32 包含很多 DLL 文件,必须使用 --collect-all=pywin32 才能正确打包
    • minio 有多个子模块,使用 --collect-all=minio 确保完整打包

问题:文件过大

  • 这是正常的,PyInstaller 会打包 Python 解释器和所有依赖
  • 可以使用 --exclude-module 排除不需要的模块来减小体积

问题:转换脚本文件不存在(small_machine_transform.py)

  • 已修复: small_machine_transform.py 已自动包含在打包脚本中
  • 如果仍然提示文件不存在,检查 build_exe.py 中的 --add-data 参数是否正确
  • 文件会被放在 _MEIPASS/utils/_MEIPASS/download_batch_data/utils/ 目录下