Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Environment:Iterative Dvc Python Runtime

From Leeroopedia


Knowledge Sources
Domains Infrastructure, Data_Version_Control
Last Updated 2026-02-10 10:00 GMT

Overview

Python 3.9+ environment with 40+ core dependencies for running DVC data version control operations.

Description

This environment defines the core Python runtime and package dependencies required to run DVC. DVC requires Python 3.9 or higher and depends on a wide range of packages for YAML parsing, Git integration, filesystem operations, task queuing, and CLI rendering. The dependency tree is managed via pyproject.toml with strict version pinning for API-stability-sensitive packages.

Usage

Use this environment for any DVC operation including data tracking, pipeline reproduction, experiment management, and remote data synchronization. This is the base prerequisite for all DVC functionality.

System Requirements

Category Requirement Notes
OS Linux, macOS, or Windows Windows requires WSL2 for some advanced features
Python >= 3.9 Supports 3.9 through 3.14
Git >= 2.0 Required for SCM integration via scmrepo
Disk Varies Cache storage scales with tracked data size

Dependencies

System Packages

  • `python` >= 3.9
  • `git` >= 2.0

Python Packages (Core)

  • `attrs` >= 22.2.0
  • `celery` (experiment queue task runner)
  • `colorama` >= 0.3.9
  • `configobj` >= 5.0.9
  • `distro` >= 1.3
  • `dpath` >= 2.1.0, < 3
  • `dulwich` (pure-Python Git implementation)
  • `dvc-data` >= 3.18.2, < 3.19.0
  • `dvc-http` >= 2.29.0
  • `dvc-objects` (object storage abstraction)
  • `dvc-render` >= 1.0.1, < 2
  • `dvc-studio-client` >= 0.21, < 1
  • `dvc-task` >= 0.3.0, < 1
  • `flatten-dict` >= 0.4.1, < 1
  • `flufl.lock` >= 8.1.0, < 10
  • `fsspec` >= 2024.2.0
  • `funcy` >= 1.14
  • `grandalf` >= 0.7, < 1
  • `gto` >= 1.6.0, < 2
  • `hydra-core` >= 1.1
  • `iterative-telemetry` >= 0.0.7
  • `kombu` (message queue library)
  • `networkx` >= 2.5
  • `omegaconf` (Hydra config companion)
  • `packaging` >= 19
  • `pathspec` >= 0.10.3, < 2
  • `platformdirs` >= 3.1.1, < 5
  • `psutil` >= 5.8
  • `pydot` >= 1.2.4
  • `pygtrie` >= 2.3.2
  • `pyparsing` >= 3.0.0
  • `requests` >= 2.22
  • `rich` >= 12
  • `ruamel.yaml` >= 0.17.11
  • `scmrepo` >= 3.5.2, < 4
  • `shortuuid` >= 0.5
  • `shtab` >= 1.3.4, < 2
  • `tabulate` >= 0.8.7
  • `tomlkit` >= 0.11.1
  • `tqdm` >= 4.63.1, < 5
  • `voluptuous` >= 0.11.7
  • `zc.lockfile` >= 1.2.1

Credentials

No credentials required for base DVC operations. See Environment:Iterative_Dvc_DVC_Environment_Variables for optional environment variable configuration and Environment:Iterative_Dvc_Remote_Storage_Backends for remote-specific credentials.

Quick Install

# Install DVC with core dependencies only
pip install dvc

# Install DVC with all remote storage backends
pip install "dvc[all]"

# Install DVC for development
pip install "dvc[dev]"

Code Evidence

Python version requirement from `pyproject.toml:23`:

requires-python = ">=3.9"
classifiers = [
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14",
]

Version compatibility checking from `dvc/utils/packaging.py:10-32`:

@once_per_args
def check_required_version(pkg: str, dist: str = "dvc", log_level=logging.WARNING):
    from importlib import metadata
    from packaging.requirements import InvalidRequirement, Requirement

    try:
        reqs = {
            r.name: r.specifier for r in map(Requirement, metadata.requires(dist) or [])
        }
        version = metadata.version(pkg)
    except (metadata.PackageNotFoundError, InvalidRequirement):
        return

    specifier = reqs.get(pkg)
    if specifier and version and version not in specifier:
        logger.log(
            log_level,
            "%s%s is required, but you have %r installed which is incompatible.",
            pkg, specifier, version,
        )

Pathspec version compatibility from `dvc/ignore.py:8-15`:

try:
    from pathspec.patterns.gitignore.spec import (
        GitIgnoreSpecPattern,
    )
except ImportError:  # pathspec<1
    from pathspec.patterns import (
        GitWildMatchPattern as GitIgnoreSpecPattern,
    )

Common Errors

Error Message Cause Solution
`requires-python >= 3.9` Python version too old Upgrade to Python 3.9+
`%s%s is required, but you have %r installed which is incompatible` Dependency version mismatch `pip install --upgrade <package>`
`ImportError: No module named 'dvc'` DVC not installed `pip install dvc`
`ImportError` from pathspec pathspec API changed between <1 and >=1 Ensure `pathspec>=0.10.3,<2`

Compatibility Notes

  • pathspec versions: DVC handles both pathspec <1 and >=1 APIs with try/except import guards. The `GitWildMatchPattern` class was renamed to `GitIgnoreSpecPattern` in pathspec 1.0.
  • platformdirs versions: platformdirs >=5 changed `site_cache_dir` behavior. DVC maintains backward compatibility by hardcoding `/var/tmp/dvc` on Unix systems.
  • Windows: Requires `pywin32>=225` for some test operations. Some features work better under WSL2.
  • Build system: Requires `setuptools>=77` and `setuptools_scm[toml]>=8` for building from source.

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment