Merged
Conversation
Adds a cross-platform dependency installer that automatically downloads a standalone Python, the uv package installer, creates an isolated venv, and installs all required packages (PyTorch, segment-geospatial, sam3, transformers, etc.) with CUDA GPU support and automatic CPU fallback. New files: - core/python_manager.py: Downloads standalone Python from astral-sh - core/uv_manager.py: Downloads uv binary per platform - core/venv_manager.py: Orchestrates venv creation and package installation - deps_install_dialog.py: QDockWidget UI with progress bar and GPU detection - workers/deps_install_worker.py: Background QThread for installation Modified files: - _samgeo_lib.py: Added venv-aware path setup in get_samgeo() - samgeo_plugin.py: Gates on dependency check, shows installer when needed - metadata.txt: Bump version to 1.2.0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
uvpackage installer, creates an isolated venv, and installs all required AI packages automaticallysam3and its undeclared dependencies (psutil,scikit-image,scikit-learn) for Meta SAM3 supportNew files
core/python_manager.py— Downloads standalone Python matching QGIS version from astral-shcore/uv_manager.py— Downloads uv binary (pinned v0.10.6) per platformcore/venv_manager.py— Orchestrates venv creation and package installation (4-phase pipeline)deps_install_dialog.py— QDockWidget UI with GPU detection, progress bar, install/cancel/reinstall buttonsworkers/deps_install_worker.py— Background QThread wrapper for non-blocking installationModified files
_samgeo_lib.py— Added venv-aware path setup soget_samgeo()finds packages in the managed venvsamgeo_plugin.py— Gates plugin launch on dependency check; shows installer dock when deps are missingmetadata.txt— Bump version to 1.2.0How it works
Test plan
~/.qgis_samgeo/, open QGIS, click SamGeo → installer dock appears