Fix PyInstaller build failure caused by enum34 package

The enum34 package is an obsolete backport of Python's enum module
and is incompatible with PyInstaller on Python 3.4+. It was being
pulled in as a transitive dependency by pvporcupine (part of
RealtimeSTT's dependencies).

Changes:
- All build scripts now remove enum34 before running PyInstaller
  - build.bat, build-cuda.bat (Windows)
  - build.sh, build-cuda.sh (Linux)
- Added "uv pip uninstall -q enum34" step after cleaning builds
- Removed attempted pyproject.toml override (not needed with this fix)

This fix allows PyInstaller to bundle the application without errors
while still maintaining all RealtimeSTT functionality (enum is part
of Python stdlib since 3.4).

Resolves: PyInstaller error "enum34 package is incompatible"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-28 19:06:33 -08:00
parent 20a7764bab
commit be53f2e962
5 changed files with 17 additions and 0 deletions

View File

@@ -29,6 +29,10 @@ echo Cleaning previous builds...
if exist build rmdir /s /q build
if exist dist rmdir /s /q dist
REM Remove enum34 if present (incompatible with PyInstaller)
echo Removing enum34 (if present)...
uv pip uninstall -q enum34 2>nul
REM Build with PyInstaller
echo Running PyInstaller...
uv run pyinstaller local-transcription.spec

View File

@@ -30,6 +30,10 @@ fi
echo "Cleaning previous builds..."
rm -rf build dist
# Remove enum34 if present (incompatible with PyInstaller)
echo "Removing enum34 (if present)..."
uv pip uninstall -q enum34 2>/dev/null || true
# Build with PyInstaller
echo "Running PyInstaller..."
uv run pyinstaller local-transcription.spec

View File

@@ -10,6 +10,10 @@ echo Cleaning previous builds...
if exist build rmdir /s /q build
if exist dist rmdir /s /q dist
REM Remove enum34 if present (incompatible with PyInstaller)
echo Removing enum34 (if present)...
uv pip uninstall -q enum34 2>nul
REM Build with PyInstaller
echo Running PyInstaller...
uv run pyinstaller local-transcription.spec

View File

@@ -8,6 +8,10 @@ echo "========================================="
echo "Cleaning previous builds..."
rm -rf build dist
# Remove enum34 if present (incompatible with PyInstaller)
echo "Removing enum34 (if present)..."
uv pip uninstall -q enum34 2>/dev/null || true
# Build with PyInstaller
echo "Running PyInstaller..."
uv run pyinstaller local-transcription.spec

View File

@@ -71,6 +71,7 @@ torch = { index = "pytorch-cu121" }
torchvision = { index = "pytorch-cu121" }
torchaudio = { index = "pytorch-cu121" }
[tool.ruff]
line-length = 100
target-version = "py39"