psycopg / psycopg2

PostgreSQL database adapter for the Python programming language
https://www.psycopg.org/
Other
3.37k stars 505 forks source link

psycopg2-binary installation fails with pg_config executable not found. #1760

Closed alpap closed 10 hours ago

alpap commented 11 hours ago

This is a bug tracker If you have a question, such has "how do you do X with Python/PostgreSQL/psycopg2" please write to the mailing list or open a question instead.

Before opening this ticket, please confirm that:

Please complete the following information:

In the documentation its stated that

pip install psycopg2-binary

This will install a pre-compiled binary version of the module which does not require the build or runtime prerequisites described below

But when I am trying to install this package

Collecting psycopg2-binary
  Using cached https://mirror.terma.com/pip/packages/psycopg2-binary/2.9.10/psycopg2-binary-2.9.10.tar.gz (385 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [21 lines of output]
      running egg_info
      writing psycopg2_binary.egg-info\PKG-INFO
      writing dependency_links to psycopg2_binary.egg-info\dependency_links.txt
      writing top-level names to psycopg2_binary.egg-info\top_level.txt

      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 with the
      option:

          python setup.py build_ext --pg-config /path/to/pg_config build ...

      or with the pg_config option in 'setup.cfg'.

      If you prefer to avoid building psycopg2 from source, please install the PyPI
      'psycopg2-binary' package instead.

      For further information please check the 'doc/src/install.rst' file (also at
      <https://www.psycopg.org/docs/install.html>).

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

from what is stated in the error

pg_config is required to build psycopg2 from source

but we are installing a binary package so why is pg_config needed?

dvarrazzo commented 10 hours ago

The binary file for windows for Python 3.12 is uploaded on PyPI. The one for Python 3.13 is still missing, see #1736.

You should investigate the reason why pip doesn't install the file available; this falls outside the support we are able to give.