Produces a double-click Windows setup: SwingLab-Setup-<version>.exe.
The installer copies a PyInstaller onedir build (Python, OpenCV, MediaPipe, Vue UI) into %LOCALAPPDATA%\Programs\SwingLab. First launch runs the camera / player wizard. Recordings and swinglab.local.json go to %LOCALAPPDATA%\SwingLab.
- Install Python 3.12, Node.js 22 LTS, and Inno Setup 6 (
ISCC.exeon PATH). - From the repo root:
python -m pip install -r requirements-build.txt
python scripts/build_installer.pyOutputs:
dist\SwingLab\SwingLab.exe— frozen appdist\installer\SwingLab-Setup-1.1.0.exe— Inno wizard
Flags:
python scripts/build_installer.py --skip-frontend # reuse frontend/dist
python scripts/build_installer.py --pyinstaller-only # skip InnoWorkflow Windows installer (.github/workflows/windows-installer.yml) runs on version tags (v*) or workflow_dispatch. It uploads SwingLab-Setup-*.exe as an artifact.
python scripts/build_installer.py --pyinstaller-only writes dist/SwingLab/SwingLab. There is no .deb / .dmg yet.
- Run SwingLab Setup.exe (or the Start Menu shortcut).
- Finish cameras + first player.
- Daily start: SwingLab from the Start Menu or desktop.
--setup opens the wizard again. --skip-setup goes straight to the app.