Skip to content

algorithm-nexus[product]==0.2.2 broken on fresh pip install: torchgeo 0.10.0 incompatibility #213

Description

@tmuttaki

Summary

A fresh pip install algorithm-nexus[product]==0.2.2 fails at runtime because pip resolves torchgeo==0.10.0, which is incompatible with the pinned terratorch[vllm]==1.2.10.

Error

ImportError: cannot import name 'utils' from 'torchgeo.trainers'
(/opt/vllm/lib64/python3.12/site-packages/torchgeo/trainers/__init__.py)

This breaks both the terratorch_fix vLLM plugin and the Terratorch model architecture registration, making geospatial models (e.g. ibm-nasa-geospatial/Prithvi-EO-2.0-300M-TL-Sen1Floods11) unservable via vLLM.

Root Cause

  1. torchgeo 0.10.0 (released 2026-08-14) renamed torchgeo.trainerstorchgeo.tasks (torchgeo PR #3887). The trainers.utils submodule was not shimmed with a deprecation alias — it was simply removed.

  2. terratorch 1.2.10 (the version pinned by algorithm-nexus) imports from torchgeo.trainers import utils in multiple files (timm_model_factory.py, cli_tools.py, base_task.py, reconstruction_tasks.py, wxc_downscaling_task.py). Its pyproject.toml declares torchgeo as a dependency with no upper bound.

  3. algorithm-nexus 0.2.2 pins terratorch[vllm]==1.2.10 in the [product] extra but has no direct torchgeo version constraint. The requirements-product.txt lock file pins torchgeo==0.9.0, but a bare pip install algorithm-nexus[product]==0.2.2 (without the lock file) lets pip resolve torchgeo==0.10.0, which breaks the import.

Upstream Status

  • terratorch PR #1222 (merged 2026-08-18 to main) pins torchgeo>=0.9.0,<0.10 — but this fix is not in any release. Latest release is still v1.2.10 (2026-07-15), which predates the fix.
  • terratorch PR #1221 (open) does a full API migration to support torchgeo 0.10.

Reproduction

# In a clean environment or container (e.g. quay.io/vllm/automation-vllm:cuda-*)
pip install algorithm-nexus[product]==0.2.2

# This fails:
python -c "from terratorch.vllm.plugins.general import register_terratorch_fix"
# ImportError: cannot import name 'utils' from 'torchgeo.trainers'

# Workaround:
pip install "torchgeo<0.10"
# Now the import succeeds

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions