Environment:Evidentlyai Evidently Python Core Environment
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, ML_Monitoring |
| Last Updated | 2026-02-14 10:00 GMT |
Overview
Python 3.10+ environment with pandas, scikit-learn, NumPy, SciPy, and Plotly for ML model monitoring and data quality analysis.
Description
This is the core runtime environment for the Evidently library. It provides the base dependencies needed for all Evidently functionality including data drift detection, model quality reporting, and data quality analysis. The environment is CPU-based and does not require GPU hardware. It is built around the scientific Python stack (pandas, NumPy, SciPy, scikit-learn) with Plotly for visualizations and Pydantic for data validation.
Usage
Use this environment for any Evidently workflow. It is the mandatory prerequisite for running all reports, test suites, metrics, and the Evidently UI service. All other optional environments (LLM, Spark, SQL) extend this base environment.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Any (Linux, macOS, Windows) | OS Independent per classifiers |
| Python | >= 3.10 | Supports 3.10, 3.11, 3.12, 3.13 |
| Hardware | CPU | No GPU required for core functionality |
| Disk | ~500MB | For package installation including UI assets |
Dependencies
System Packages
- `build-essential` (Linux only, for compilation during pip install)
- `gcc` (Linux only, for C extensions)
Python Packages
- `plotly` >= 5.10.0, < 6
- `statsmodels` >= 0.14.0
- `scikit-learn` >= 1.1.1
- `pandas[parquet]` >= 1.3.5
- `numpy` >= 1.23.0
- `nltk` >= 3.6.7
- `scipy` >= 1.10.0
- `requests` >= 2.32.0
- `PyYAML` >= 6.0.1
- `pydantic` >= 1.10.16
- `litestar` >= 2.19.0
- `typing-inspect` >= 0.9.0
- `uvicorn[standard]` >= 0.22.0
- `watchdog` >= 3.0.0
- `typer` >= 0.3
- `rich` >= 13
- `iterative-telemetry` >= 0.0.5
- `dynaconf` >= 3.2.4
- `fsspec` >= 2024.9.0
- `ujson` >= 5.4.0
- `deprecation` >= 2.1.0
- `uuid6` >= 2024.7.10
- `cryptography` >= 43.0.1
- `opentelemetry-proto` >= 1.25.0
Credentials
The following environment variables are optional:
- `DO_NOT_TRACK`: Set to any value to disable anonymous usage telemetry.
- `EVIDENTLY_DISABLE_TELEMETRY`: Set to `"1"` to disable telemetry (legacy).
- `PRETTY_EXCEPTIONS_DISABLED`: Set to any value to disable Typer pretty exception output.
- `EVIDENTLY_TYPE_PREFIXES`: Comma-separated list of additional type prefixes for custom polymorphic model registration.
Quick Install
# Install core Evidently
pip install evidently
Code Evidence
Python version requirement from `pyproject.toml:14`:
requires-python = ">=3.10"
Pydantic v1/v2 compatibility shim from `src/evidently/_pydantic_compat.py:5-7`:
v = 1 if pydantic.__version__.startswith("1") else 2
if v == 1:
from pydantic import BaseModel
else:
from pydantic.v1 import BaseModel
Telemetry opt-out from `src/evidently/telemetry.py:47-53`:
DO_NOT_TRACK_ENV = "DO_NOT_TRACK"
event_logger = IterativeTelemetryLogger(
"evidently",
evidently.__version__,
enabled=lambda: os.environ.get(DO_NOT_TRACK_ENV, None) is None,
)
Dockerfile base image from `docker/Dockerfile.service:1`:
FROM python:3.11-slim-bookworm
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| `Duplicate key {key} in alias map` | Conflicting type aliases registered for polymorphic models | Check for duplicate `type_alias` in Config classes; set `EVIDENTLY_TYPE_PREFIXES` if using custom model extensions |
| `ImportError: pydantic.v1` | Pydantic v1 installed but code expects v2 path | Upgrade pydantic to >= 2.0 or ensure v1 compatibility path is working |
Compatibility Notes
- Pydantic v1 and v2: Evidently supports both Pydantic v1 (>= 1.10.16) and v2 via a compatibility shim in `_pydantic_compat.py`. All internal code imports from this shim rather than directly from pydantic.
- Minimum versions: The `requirements.min.txt` file pins exact minimum versions and is validated by tests in `tests/test_setup.py` to stay in sync with `pyproject.toml`.