{"record":{"id":"ce03339949e9e92c","repo":"roboflow/supervision","slug":"metrics-extra-is-required-to-run-the-function-r","errorCode":null,"errorMessage":"`metrics` extra is required to run the function. Run `uv pip install 'supervision[metrics]'` or `uv add supervision --extra metrics`.","messagePattern":"`metrics` extra is required to run the function\\. Run `uv pip install 'supervision\\[metrics\\]'` or `uv add supervision --extra metrics`\\.","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"src/supervision/metrics/utils/utils.py","lineNumber":5,"sourceCode":"def ensure_pandas_installed() -> None:\n    try:\n        import pandas  # noqa\n    except ImportError:\n        raise ImportError(\n            \"`metrics` extra is required to run the function.\"\n            \" Run `uv pip install 'supervision[metrics]'` or\"\n            \" `uv add supervision --extra metrics`.\"\n        )\n","sourceCodeStart":1,"sourceCodeEnd":10,"githubUrl":"https://github.com/roboflow/supervision/blob/7f254d9784d4c37e0f03cd89ddee164c8db099c0/src/supervision/metrics/utils/utils.py#L1-L10","documentation":"ImportError raised by ensure_pandas_installed() when a supervision metrics API needs pandas (for dataframe/plot outputs) but pandas is not installed. The metrics functionality is an optional extra; the helper converts a confusing ModuleNotFoundError into an actionable message. Install the 'metrics' extra to get pandas (and plotting deps).","triggerScenarios":"Calling a metrics API whose output builds a pandas DataFrame (e.g. MeanAveragePrecision.plot() or similar .plot()/.pandas output paths that call ensure_pandas_installed()) in an environment where pandas is absent.","commonSituations":"Fresh install of supervision without extras (pip install supervision); slim Docker images that trimmed pandas; CI environments installing only the base package.","solutions":["Run: uv pip install 'supervision[metrics]' (or pip install 'supervision[metrics]')","In a uv-managed project: uv add supervision --extra metrics","Or install pandas directly: pip install pandas"],"exampleFix":"# before\n$ pip install supervision  # no extras\nmp.plot()  # ImportError\n\n# after\n$ pip install 'supervision[metrics]'\nmp.plot()","handlingStrategy":"validation","validationCode":"try:\n    import pandas  # noqa: F401\n    HAS_PANDAS = True\nexcept ImportError:\n    HAS_PANDAS = False\n\nif not HAS_PANDAS:\n    print('Install the metrics extra: pip install \"supervision[metrics]\"')","typeGuard":null,"tryCatchPattern":"try:\n    result = metric.plot()\nexcept ImportError as e:\n    if 'metrics` extra' in str(e):\n        raise SystemExit(\"Missing dependency. Run: pip install 'supervision[metrics]'\") from e\n    raise","preventionTips":["Declare supervision with the metrics extra in your project dependencies from day one","In Dockerfiles, install with extras: pip install 'supervision[metrics]'"],"tags":["metrics","import","optional-dependency","pandas","environment"],"backgroundTag":null,"analyzedSha":"7f254d9784d4c37e0f03cd89ddee164c8db099c0","analyzedAt":"2026-08-15T05:13:01.950Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}