pip failing to install psycopg2-binary on ubuntu 22.04 with python 3.10

Question:

seeing this on Ubuntu 22.04 which has python 3.10

pip3 install psycopg2-binary==2.8.5                                                                                                                                                            
Defaulting to user installation because normal site-packages is not writeable                                                                                                                                          
Collecting psycopg2-binary==2.8.5                                                                                                                                                                                      
  Using cached psycopg2-binary-2.8.5.tar.gz (381 kB)                                                                                                                                                                   
  Preparing metadata (setup.py) ... error                                                                                                                                                                              
  error: subprocess-exited-with-error                                                                                                                                                                                  
                                                                                                                                                                                                                       
  × python setup.py egg_info did not run successfully.                                                                                                                                                                 
  │ exit code: 1                                                                                                                                                                                                       
  ╰─> [23 lines of output]                                                                                                                                                                                             
      running egg_info                                                                                                                                                                                                 
      creating /tmp/pip-pip-egg-info-qc0tg_5p/psycopg2_binary.egg-info                                                                                                                                                 
      writing /tmp/pip-pip-egg-info-qc0tg_5p/psycopg2_binary.egg-info/PKG-INFO                                                                                                                                         
      writing dependency_links to /tmp/pip-pip-egg-info-qc0tg_5p/psycopg2_binary.egg-info/dependency_links.txt                                                                                                         
      writing top-level names to /tmp/pip-pip-egg-info-qc0tg_5p/psycopg2_binary.egg-info/top_level.txt                                                                                                                 
      writing manifest file '/tmp/pip-pip-egg-info-qc0tg_5p/psycopg2_binary.egg-info/SOURCES.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: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Asked By: Erik

||

Answers:

This is a known issue. Use the binary version instead:

pip install psycopg2-binary

EDIT:

You dont have ‘pg_config’ which is part of libpq-dev on Ubuntu. Install it with sudo apt-get install libpq-dev and try abgain.

Answered By: Damiaan

Before starting the binary installation, export PATH like below:

export PATH=$PATH:/usr/pgsql-12/bin/

Note: Change 12 to your current PostgreSQL version.

Answered By: Niraj Nandane
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.