Files
Traffic-Intersection-Monito…/qt_app_pyside1/build_analysis_report.md

3.0 KiB

🔍 PyInstaller Build Analysis Report

Generated: July 5, 2025

🚨 Critical Issues Identified

1. Hidden Import Failures

  • ERROR: ui.main_window not found
  • ERROR: controllers not found
  • CAUSE: PyInstaller cannot find these modules as packages
  • IMPACT: Runtime import failures for UI and controller modules

2. Module Structure Issues

  • PROBLEM: Treating folders as modules without proper __init__.py files
  • AFFECTED: ui/, controllers/, utils/ directories
  • CONSEQUENCE: Import resolution failures

3. Massive Dependencies

  • SIZE: Build includes TensorFlow (2.19.0), PyTorch (2.5.1), SciKit-learn, etc.
  • IMPACT: ~800MB+ executable with unnecessary ML libraries
  • BLOAT: Most dependencies unused by traffic monitoring app

4. Deprecation Warnings

  • TorchScript: Multiple deprecation warnings
  • torch.distributed: Legacy API warnings
  • NNCF: Version mismatch warnings (torch 2.5.1 vs recommended 2.6.*)

Successful Components

  • ✓ PySide6 Qt framework detected and integrated
  • ✓ OpenCV (cv2) hooks processed successfully
  • ✓ NumPy and core scientific libraries included
  • ✓ Build completed without fatal errors

Immediate Fixes

  1. Add __init__.py files to make directories proper Python packages
  2. Fix hidden imports with correct module paths
  3. Exclude unused dependencies to reduce size
  4. Add specific imports for UI components

Optimized Build Command

pyinstaller --onefile --console --name=FixedDebug ^
    --add-data="ui;ui" ^
    --add-data="controllers;controllers" ^
    --add-data="utils;utils" ^
    --add-data="config.json;." ^
    --hidden-import=ui.main_window ^
    --hidden-import=controllers.video_controller_new ^
    --hidden-import=utils.crosswalk_utils_advanced ^
    --hidden-import=utils.traffic_light_utils ^
    --hidden-import=cv2 ^
    --hidden-import=openvino ^
    --hidden-import=numpy ^
    --hidden-import=PySide6.QtCore ^
    --hidden-import=PySide6.QtWidgets ^
    --hidden-import=PySide6.QtGui ^
    --exclude-module=tensorflow ^
    --exclude-module=torch ^
    --exclude-module=sklearn ^
    --exclude-module=matplotlib ^
    --exclude-module=pandas ^
    main.py

Size Optimization

  • Current: ~800MB+ with ML libraries
  • Optimized: ~200-300MB without unused dependencies
  • Core only: PySide6 + OpenVINO + OpenCV + app code

🎯 Runtime Risk Assessment

High Risk

  • UI module import failures
  • Controller module missing
  • Configuration file access issues

Medium Risk

  • Missing utility modules
  • OpenVINO model loading
  • Resource file access

Low Risk

  • Core PySide6 functionality
  • OpenCV operations
  • Basic Python libraries

📋 Next Steps

  1. Create missing __init__.py files
  2. Test optimized build command
  3. Run executable and capture any runtime errors
  4. Verify all UI components load correctly
  5. Test complete pipeline functionality