Skip to content

Environment Isolation

ExpOps automatically manages virtual environments for each project.

Environment Managers

ExpOps supports multiple environment managers:

venv

Python's built-in virtual environment manager:

  • Default for most projects
  • Lightweight and fast
  • Python 3.8+ required

conda

Conda environment manager:

  • Useful for complex dependencies
  • Supports non-Python dependencies

Configuration

Environment settings are configured in configs/project_config.yaml. Each environment has a name and one or more manager entries (venv or conda) whose value is a list of requirement files:

environment:
  my-project-env:
    venv: ["my-project/requirements.txt"]
  my-project-env-reporting:
    venv: ["my-project/charts/requirements.txt"]
  my-project-conda:
    conda: ["my-project/environment.yml"]

Inline requirements or conda dependencies in the config are not supported; use files.

Benefits

Environment isolation provides:

  • Dependency isolation: No conflicts between projects
  • Reproducibility: Consistent environments
  • Clean separation: Training vs. reporting dependencies
  • Easy cleanup: Remove environments when done