3.1 KiB
Debugging Path Juggler
Build System
The build scripts use uv to manage Python versions and dependencies, ensuring a truly self-contained build that doesn't depend on system Python installations. This means:
- ✅ No dependency on system Python versions
- ✅ No dependency on Homebrew Python
- ✅ Consistent builds across different systems
- ✅ Self-contained .app bundle with everything included
The Problem
When you launch the built app and nothing happens, it's because:
- The app is built with
console=False, so errors are hidden - The app is failing silently due to missing dependencies (like
tkinter)
Solution 1: Run from Terminal (Quick Debug)
Run the existing app from terminal to see errors:
./run_app_debug.sh
Or manually:
"/Users/justinaspetravicius/Public/Gitea/path-juggler/dist/Path Juggler.app/Contents/MacOS/Path Juggler"
This will show you any error messages in the terminal.
Solution 2: Build Debug Version
Build a version with console output enabled:
./build_app_debug.sh
This creates Path Juggler Debug.app which will show a terminal window with all output.
Solution 3: Check System Logs
On macOS, you can also check system logs:
# View recent logs for the app
log show --predicate 'process == "Path Juggler"' --last 5m
# Or use Console.app (GUI)
open -a Console
Common Issues Found
Issue: Missing tkinter
Error: ModuleNotFoundError: No module named 'tkinter' or ModuleNotFoundError: No module named '_tkinter'
Root Cause: The build scripts now use uv to install Python 3.12, which includes tkinter by default. If you still see this error, it may be a PyInstaller bundling issue.
Fix: The build scripts use uv to:
- Install Python 3.12 (which has tkinter built-in)
- Create a virtual environment with that Python
- Install all dependencies
- Build with PyInstaller (which bundles everything including tkinter)
Rebuild the app:
./build_app.sh
If tkinter is still missing:
- Make sure
uvis installed:brew install uvorcurl -LsSf https://astral.sh/uv/install.sh | sh - The build script will automatically download Python 3.12 if needed
- PyInstaller should bundle tkinter automatically - if not, check the PyInstaller output for warnings
Issue: Missing watchdog modules
Error: ModuleNotFoundError: No module named 'watchdog.observers.fsevents'
Fix: Make sure watchdog is installed in the build environment. The build script handles this automatically.
Rebuilding After Fixes
After fixing issues, rebuild:
# Production build (no console)
./build_app.sh
# Debug build (with console)
./build_app_debug.sh
Testing the Fix
After rebuilding, test:
-
Quick test from terminal:
./run_app_debug.sh -
Or launch the debug version:
open "dist/Path Juggler Debug.app" -
Or launch the production version:
open "dist/Path Juggler.app"
Current Status
The build scripts have been updated to include tkinter in the hidden imports. You should rebuild the app to apply the fix.