diff --git a/factory_sliceing/README_BUILD.md b/factory_sliceing/README_BUILD.md index 5048a25..58b47ae 100644 --- a/factory_sliceing/README_BUILD.md +++ b/factory_sliceing/README_BUILD.md @@ -68,11 +68,17 @@ factory_sliceing.exe begin_sliceing C:\work\data - 尝试在命令行运行 exe 查看错误信息 - 检查是否有隐藏导入的模块未添加 -### 问题:模块未找到错误(如 uiautomation) -- **已修复**: `uiautomation` 模块已添加到打包脚本中 +### 问题:模块未找到错误(如 uiautomation, win32gui, minio) +- **已修复**: + - `uiautomation` 模块已添加到打包脚本中,使用 `--collect-all=uiautomation` + - `win32gui` 等 pywin32 模块已添加,使用 `--collect-all=pywin32` 确保包含所有 DLL 文件 + - `minio` 模块已添加,使用 `--collect-all=minio` 确保包含所有子模块 - 如果遇到其他模块未找到,在 `build_exe.py` 中添加对应的 `--hidden-import` 参数 -- 或者使用 `--collect-all=<模块名>` 参数收集所有子模块 -- 常见问题模块:`uiautomation`, `win32gui`, `win32con`, `win32api`, `psutil`, `minio` +- 或者使用 `--collect-all=<模块名>` 参数收集所有子模块和 DLL 文件 +- 常见问题模块:`uiautomation`, `win32gui`, `win32con`, `win32api`, `win32process`, `psutil`, `minio` +- **注意**: + - pywin32 包含很多 DLL 文件,必须使用 `--collect-all=pywin32` 才能正确打包 + - minio 有多个子模块,使用 `--collect-all=minio` 确保完整打包 ### 问题:文件过大 - 这是正常的,PyInstaller 会打包 Python 解释器和所有依赖 diff --git a/factory_sliceing/build_exe.py b/factory_sliceing/build_exe.py index f99594d..a3d2275 100644 --- a/factory_sliceing/build_exe.py +++ b/factory_sliceing/build_exe.py @@ -45,15 +45,31 @@ def build_exe(): '--hidden-import=uiautomation', # Windows API 相关模块(pywin32) + # 注意:pywin32 需要特殊处理,使用 collect-all 确保包含所有 DLL 和模块 '--hidden-import=win32gui', '--hidden-import=win32con', '--hidden-import=win32api', '--hidden-import=win32process', + '--hidden-import=win32timezone', + '--hidden-import=win32clipboard', + '--hidden-import=pywintypes', + '--collect-all=pywin32', # 收集 pywin32 的所有模块和 DLL 文件 # 其他可能需要的模块 '--hidden-import=psutil', # 进程管理(可选,但有 try-except) - '--hidden-import=minio', # MinIO 客户端 + + # MinIO 客户端相关模块 + '--hidden-import=minio', '--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 的所有子模块(确保完整打包) '--collect-all=uiautomation',