Skip to content
Latchkey

DVC "dvc: command not found" on the runner in CI

The shell could not find a dvc executable because DVC is not installed on the runner. GitHub-hosted images do not ship DVC, so a step must install it first with pip or the setup-dvc action.

What this error means

A step calling dvc pull or dvc repro fails with "dvc: command not found" and exit code 127, before DVC does anything.

dvc
/home/runner/work/_temp/script.sh: line 1: dvc: command not found
Error: Process completed with exit code 127.

Common causes

DVC was never installed on the runner

The base image has no DVC, and no install step ran, so the binary is absent from PATH.

Installed into a different environment

DVC was pip-installed into a venv that the current step did not activate, so dvc is not on the active PATH.

How to fix it

Install DVC with pip

Install DVC (with the extra for your remote) before using it. Match the extra to S3, GCS, Azure, or gdrive.

Terminal
python -m pip install "dvc[s3]"
dvc --version

Use the iterative/setup-dvc action

The official action installs DVC and puts it on PATH for later steps.

.github/workflows/ci.yml
- uses: iterative/setup-dvc@v1
- run: dvc pull

How to prevent it

  • Install DVC in an explicit setup step in every workflow.
  • Pick the remote extra (dvc[s3], dvc[gs], dvc[azure], dvc[gdrive]).
  • Pin the DVC version so behavior is reproducible across runs.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →