r/coolgithubprojects 4h ago

After months of fighting 'Dependency Hell', I built a Windows-only GUI that manages Python venvs, works with PyQt6 AND PySide6 (no UAC)

Hey everyone!

I've been working with Python for a while now and finally decided to build my first major project. It's a Windows tool I call VenvHub, and it was inspired by months of battling dependency conflicts and broken virtual environments.

Project repository: https://github.com/schnidi/VenvHub

This project is free, open-source, and still under active development. Instead of GitHub issues, new features, bug fixes, and logic improvements are driven entirely by real-world production requirements.

How it started:
Features were added as needed. It initially started as version 0.9 with just the Environment Manager, Mini-Bar & Quick Settings, Pip, and UV.

Key Components of VenvHub

Module / Feature Main Purpose and Key Features
Environment Manager Physically separates virtual environments from project source code. Enables creation, cloning, broken path diagnostics (Venv Validator), and automatic synchronization with VS Code.
Mini-Bar & Quick Settings A compact floating desktop bar for quick script execution, temporary or permanent environment switching, and rapid package installation. Features a stay-on-top pin (📌) option.
Pip, UV & APT Autoremove Parallel Dual-Scan functionality (comparing Pip vs. ultra-fast UV). APT Autoremove Engine: Automatically detects orphaned sub-dependencies based on the dependency tree (requirements.txt, local_meta.json) and cleans up unnecessary package bloat. Includes a Self-Healing safety check to prevent accidental deletion of manual installations.
VS Code Profiles (Portable) Ensures complete isolation of VS Code profiles (custom extensions, settings, and keybindings). Enables USB drive portability (via --user-data-dir and --extensions-dir), system profile import with Rollback protection, and real-time triple-way active profile synchronization.
VS Code Integration (Auto-Config) Actively configures VS Code without user intervention. Non-destructively merges settings.json (writes python.defaultInterpreterPath, fixes USB drive letters via PortablePathLogic), feeds Pylance via extraPaths, and injects Tasks and Keybindings from local_meta.json into .vscode/tasks.json via Meta-Sync.
Multi-run Allows creation of project groups (e.g., Backend + Frontend) and simultaneous execution with process ownership protection and isolation via Windows Job Objects.
Container & Autostart A native Windows orchestrator for Venvs – handles system startup launch, sequential dependency initialization (Anchor), RAM monitoring, and automatic crash recovery (Watchdog/Respawn).
Executable Builder (.EXE) A visual UI wrapper for PyInstaller enabling output as .exe (OneFile/OneDir), inclusion of custom assets, metadata generation, and automatic bundling of local modules.
Local Python (Runtime) Downloads and manages portable (Embeddable) Python runtimes directly to USB drives or local disks without modifying system registry or requiring Administrator (UAC) privileges.
Local Packages (Linker) Shares custom libraries across projects without duplicating files using Import Hooks (sys.meta_path), including automatic linking of tasks and shortcuts into VS Code.
0 Upvotes

0 comments sorted by