ruvnet/RuView · error · ImportError

Core dependencies not found. Make sure you installed from th

Error message

Core dependencies not found. Make sure you installed from the repository root:
  cd wifi-densepose && pip install -e .
Or install the v1 package:
  cd wifi-densepose/v1 && pip install -e .

What it means

The wifi_densepose package's start path (_async_start) imports the v1 pipeline's src.config.settings and src.services.orchestrator; on ImportError it re-raises with instructions to pip install -e . from the repository root or wifi-densepose/v1. Caveat: the re-raise does not chain the original exception (`from` is missing), so the real failing module — which can be any transitive import inside orchestrator, not just the two named modules — is masked by this generic message.

Source

Thrown at wifi_densepose/__init__.py:67

        """Start the sensing system (blocking until ready)."""
        import asyncio

        loop = _get_or_create_event_loop()
        loop.run_until_complete(self._async_start())

    async def _async_start(self):
        try:
            from src.config.settings import get_settings
            from src.services.orchestrator import ServiceOrchestrator

            settings = get_settings()
            self._orchestrator = ServiceOrchestrator(settings)
            await self._orchestrator.initialize()
            await self._orchestrator.start()
            self._running = True
            logger.info("WiFiDensePose system started on %s:%s", self.host, self.port)
        except ImportError:
            raise ImportError(
                "Core dependencies not found. Make sure you installed "
                "from the repository root:\n"
                "  cd wifi-densepose && pip install -e .\n"
                "Or install the v1 package:\n"
                "  cd wifi-densepose/v1 && pip install -e ."
            )

    def stop(self):
        """Stop the sensing system."""
        import asyncio

        if self._orchestrator is not None:
            loop = _get_or_create_event_loop()
            loop.run_until_complete(self._orchestrator.shutdown())
            self._running = False
            logger.info("WiFiDensePose system stopped")

    def get_latest_poses(self):

View on GitHub (pinned to 4685618388)

Solutions

  1. Install the package in editable mode from the repository root: `cd wifi-densepose && pip install -e .` (or `cd wifi-densepose/v1 && pip install -e .` for the v1 package)
  2. Re-run `pip install -e .` after pulling changes that add dependencies or move src.* modules
  3. If the install is fine and the error persists, unmask the real cause: run `python -c "from src.services.orchestrator import ServiceOrchestrator"` to see the actual traceback
  4. Fix whatever import that one-liner reports (usually a missing dependency in the venv)

Example fix

# before
        except ImportError:
            raise ImportError("Core dependencies not found. ...")  # original cause lost

# after
        except ImportError as exc:
            raise ImportError(
                "Core dependencies not found. Install from the repository root:\n"
                "  cd wifi-densepose && pip install -e ."
            ) from exc  # keeps the real failing import in the traceback
Defensive patterns

Strategy: try-catch

Validate before calling

import importlib.util

if importlib.util.find_spec("src.services.orchestrator") is None:
    raise SystemExit("run `pip install -e .` from the repo root (or wifi-densepose/v1) before starting")

Try / catch

try:
    system.start()
except ImportError as e:
    # message is generic; probe the real import to get the true cause
    import traceback
    try:
        from src.services.orchestrator import ServiceOrchestrator  # noqa: F401
    except ImportError:
        traceback.print_exc()  # actual missing module
    raise

Prevention

When it happens

Trigger: Calling start() without an editable install of the repo; or any ImportError raised while importing the orchestrator tree (missing optional dependency, renamed module) — the except cannot distinguish these, so all surface as 'Core dependencies not found'.

Common situations: Installing only the thin wifi_densepose shim package instead of the repo; stale editable install after modules moved during a refactor; a venv missing a new transitive dependency added to the orchestrator.

Related errors


AI-assisted analysis of ruvnet/RuView@4685618388 (2026-08-16). Data as JSON: /api/errors/81d98c74aa8748d1. Report an issue: GitHub.