dongchangxi 2 weeks ago
parent
commit
e255cb3ccb
  1. 14
      factory_sliceing/README_BUILD.md
  2. 18
      factory_sliceing/build_exe.py

14
factory_sliceing/README_BUILD.md

@ -68,11 +68,17 @@ factory_sliceing.exe begin_sliceing C:\work\data
- 尝试在命令行运行 exe 查看错误信息 - 尝试在命令行运行 exe 查看错误信息
- 检查是否有隐藏导入的模块未添加 - 检查是否有隐藏导入的模块未添加
### 问题:模块未找到错误(如 uiautomation) ### 问题:模块未找到错误(如 uiautomation, win32gui, minio)
- **已修复**: `uiautomation` 模块已添加到打包脚本中 - **已修复**:
- `uiautomation` 模块已添加到打包脚本中,使用 `--collect-all=uiautomation`
- `win32gui` 等 pywin32 模块已添加,使用 `--collect-all=pywin32` 确保包含所有 DLL 文件
- `minio` 模块已添加,使用 `--collect-all=minio` 确保包含所有子模块
- 如果遇到其他模块未找到,在 `build_exe.py` 中添加对应的 `--hidden-import` 参数 - 如果遇到其他模块未找到,在 `build_exe.py` 中添加对应的 `--hidden-import` 参数
- 或者使用 `--collect-all=<模块名>` 参数收集所有子模块 - 或者使用 `--collect-all=<模块名>` 参数收集所有子模块和 DLL 文件
- 常见问题模块:`uiautomation`, `win32gui`, `win32con`, `win32api`, `psutil`, `minio` - 常见问题模块:`uiautomation`, `win32gui`, `win32con`, `win32api`, `win32process`, `psutil`, `minio`
- **注意**:
- pywin32 包含很多 DLL 文件,必须使用 `--collect-all=pywin32` 才能正确打包
- minio 有多个子模块,使用 `--collect-all=minio` 确保完整打包
### 问题:文件过大 ### 问题:文件过大
- 这是正常的,PyInstaller 会打包 Python 解释器和所有依赖 - 这是正常的,PyInstaller 会打包 Python 解释器和所有依赖

18
factory_sliceing/build_exe.py

@ -45,15 +45,31 @@ def build_exe():
'--hidden-import=uiautomation', '--hidden-import=uiautomation',
# Windows API 相关模块(pywin32) # Windows API 相关模块(pywin32)
# 注意:pywin32 需要特殊处理,使用 collect-all 确保包含所有 DLL 和模块
'--hidden-import=win32gui', '--hidden-import=win32gui',
'--hidden-import=win32con', '--hidden-import=win32con',
'--hidden-import=win32api', '--hidden-import=win32api',
'--hidden-import=win32process', '--hidden-import=win32process',
'--hidden-import=win32timezone',
'--hidden-import=win32clipboard',
'--hidden-import=pywintypes',
'--collect-all=pywin32', # 收集 pywin32 的所有模块和 DLL 文件
# 其他可能需要的模块 # 其他可能需要的模块
'--hidden-import=psutil', # 进程管理(可选,但有 try-except) '--hidden-import=psutil', # 进程管理(可选,但有 try-except)
'--hidden-import=minio', # MinIO 客户端
# MinIO 客户端相关模块
'--hidden-import=minio',
'--hidden-import=minio.error', '--hidden-import=minio.error',
'--hidden-import=minio.api',
'--hidden-import=minio.commonconfig',
'--hidden-import=minio.credentials',
'--hidden-import=minio.deleteobjects',
'--hidden-import=minio.helpers',
'--hidden-import=minio.select',
'--hidden-import=minio.signer',
'--hidden-import=minio.time',
'--collect-all=minio', # 收集 minio 的所有子模块和依赖
# 收集 uiautomation 的所有子模块(确保完整打包) # 收集 uiautomation 的所有子模块(确保完整打包)
'--collect-all=uiautomation', '--collect-all=uiautomation',

Loading…
Cancel
Save