pip psycopg2 "Error: pg_config executable not found" in CI
Building psycopg2 from source runs pg_config to locate the PostgreSQL client library. Without the Postgres client development package, pg_config is not on PATH and the build stops immediately.
What this error means
Installing psycopg2 fails early with Error: pg_config executable not found. and a hint to add it to PATH or install the Postgres dev package. The binary variant psycopg2-binary does not hit this, since it ships a prebuilt wheel.
Error: pg_config executable not found.
pg_config is required to build psycopg2 from source. Please add the directory
containing pg_config to the $PATH or specify the full executable path ...
ERROR: Could not build wheels for psycopg2Common causes
PostgreSQL client dev package not installed
pg_config ships with libpq-dev (Debian/Ubuntu) or postgresql-devel (RHEL). Without it the source build cannot locate libpq and fails.
Building the source variant instead of the binary
The psycopg2 distribution builds from source; psycopg2-binary is a self-contained wheel. Installing the former on a runner without libpq triggers this.
How to fix it
Use psycopg2-binary in CI
The binary wheel needs no compiler, no libpq-dev, and no pg_config - ideal for CI and dev.
pip install psycopg2-binary # instead of psycopg2Install the Postgres client dev package for source builds
# Debian/Ubuntu
apt-get update && apt-get install -y build-essential python3-dev libpq-dev
pip install psycopg2How to prevent it
- Prefer
psycopg2-binaryin CI to avoid the source build. - Bake
libpq-devinto images that buildpsycopg2from source. - Keep the choice of variant consistent across dev and CI.