Files
acAubo/acAubo-main/acaubo/TomatoPick.spec
Brunsmeier cf8908fcc1 Add PyInstaller configuration and enhance resource path handling
- Introduced PyInstaller configuration files for packaging: `TomatoPick.spec`, `build_windows_exe.bat`, and `build_linux.sh`.
- Updated resource paths in `control.py` and `control_core.py` to ensure compatibility with packaged applications.
- Enhanced `main.py` to manage runtime resource directories and added a startup animation.
- Improved UI elements and color themes for better user experience.
2026-05-21 11:26:31 +08:00

91 lines
2.1 KiB
Python

# -*- mode: python ; coding: utf-8 -*-
from pathlib import Path
from PyInstaller.utils.hooks import collect_data_files, collect_dynamic_libs, collect_submodules
project_dir = Path(SPECPATH).resolve().parent
datas = [
(str(project_dir / "acaubo" / "models"), "models"),
(str(project_dir / "acaubo" / "tools" / "1.png"), "tools"),
]
binaries = []
hiddenimports = []
try:
hiddenimports += collect_submodules(
"ultralytics",
filter=lambda name: not name.startswith("ultralytics.trackers"),
)
except Exception:
hiddenimports.append("ultralytics")
for package_name in ("pyrealsense2", "pyaubo_sdk", "pyaubo_agvc_sdk"):
try:
hiddenimports += collect_submodules(package_name)
except Exception:
hiddenimports.append(package_name)
for package_name in ("pyrealsense2", "pyaubo_sdk", "pyaubo_agvc_sdk"):
try:
binaries += collect_dynamic_libs(package_name)
except Exception:
pass
try:
datas += collect_data_files("ultralytics", include_py_files=False)
except Exception:
pass
a = Analysis(
[str(project_dir / "acaubo" / "main.py")],
pathex=[str(project_dir / "acaubo")],
binaries=binaries,
datas=datas,
hiddenimports=hiddenimports,
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[
"lap",
"ultralytics.trackers",
"ultralytics.trackers.basetrack",
"ultralytics.trackers.bot_sort",
"ultralytics.trackers.byte_tracker",
"ultralytics.trackers.track",
"ultralytics.trackers.utils",
"ultralytics.trackers.utils.gmc",
"ultralytics.trackers.utils.kalman_filter",
"ultralytics.trackers.utils.matching",
],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name="TomatoPick",
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=False,
console=False,
)
coll = COLLECT(
exe,
a.binaries,
a.datas,
strip=False,
upx=False,
upx_exclude=[],
name="TomatoPick",
)