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>
63 lines
1.9 KiB
Bash
Executable File
63 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Build script for Linux with CUDA support
|
|
|
|
echo "Building Local Transcription with CUDA support..."
|
|
echo "=================================================="
|
|
echo ""
|
|
echo "This will create a build that supports both CPU and CUDA GPUs."
|
|
echo "The executable will be larger (~2-3GB) but will work on any system."
|
|
echo ""
|
|
|
|
# Check if we should install CUDA-enabled PyTorch
|
|
read -p "Install PyTorch with CUDA support? (y/n) " -n 1 -r
|
|
echo
|
|
if [[ $REPLY =~ ^[Yy]$ ]]
|
|
then
|
|
echo "Installing PyTorch with CUDA 12.1 support..."
|
|
# Uninstall CPU-only version if present
|
|
# Note: uv doesn't support -y flag, it uninstalls without confirmation
|
|
uv pip uninstall torch 2>/dev/null || true
|
|
|
|
# Install CUDA-enabled PyTorch
|
|
# This installs PyTorch with bundled CUDA runtime
|
|
uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
|
|
|
|
echo "✓ CUDA-enabled PyTorch installed"
|
|
echo ""
|
|
fi
|
|
|
|
# Clean previous builds
|
|
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
|
|
|
|
# Check if build succeeded
|
|
if [ -d "dist/LocalTranscription" ]; then
|
|
echo ""
|
|
echo "✓ Build successful!"
|
|
echo "Executable location: dist/LocalTranscription/LocalTranscription"
|
|
echo ""
|
|
echo "CUDA Support: YES (falls back to CPU if CUDA not available)"
|
|
echo ""
|
|
echo "To run the application:"
|
|
echo " cd dist/LocalTranscription"
|
|
echo " ./LocalTranscription"
|
|
echo ""
|
|
echo "To create a distributable package:"
|
|
echo " cd dist"
|
|
echo " tar -czf LocalTranscription-Linux-CUDA.tar.gz LocalTranscription/"
|
|
echo ""
|
|
echo "Note: This build will work on systems with or without NVIDIA GPUs."
|
|
else
|
|
echo ""
|
|
echo "✗ Build failed!"
|
|
exit 1
|
|
fi
|