Skip to content
Latchkey

pip install "file:// does not appear to be a Python project" in CI

pip was asked to install a local path (., a directory, or a file:// URL) but found no pyproject.toml or setup.py there. Without project metadata, pip has nothing to build or install.

What this error means

pip fails with "ERROR: file:///home/runner/work/app/app does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found".

pip
ERROR: file:///home/runner/work/app/app does not appear to be a Python project:
neither 'setup.py' nor 'pyproject.toml' found.

Common causes

The install path is the wrong directory

pip ran from (or was pointed at) a directory above or beside the project, where no pyproject.toml/setup.py exists.

A monorepo subproject was not targeted

The package lives in a subdirectory, but pip was given the repo root, which has no project metadata.

How to fix it

Install from the directory that has the metadata

  1. Confirm where pyproject.toml or setup.py lives.
  2. Run pip from that directory or pass its path explicitly.
  3. Re-run the install.
Terminal
pip install ./packages/app

Add a build configuration if it is missing

If the directory is meant to be installable, give it a pyproject.toml with a build backend.

pyproject.toml
[build-system]
requires = ["setuptools>=64", "wheel"]
build-backend = "setuptools.build_meta"

How to prevent it

  • Run pip install from the directory holding the project metadata.
  • In monorepos, target the specific package path.
  • Keep a valid [build-system] in each installable package.

Related guides

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