Installing python depends on package psycopg2 to invoke postgresql operations

  • 2021-09-05 00:34:02
  • OfStack

1. Install the dependent components of psycopg2 first

The operating system of this case is linux red hat

Before installing the python dependency package psycopg, you must first install the relevant components of the postgresql database:

postgresql-devel, postgresql and postgresql-libs are important components. Additionally, optional components: postgresql-server

Before installing the above components, you can use the command to see if your system has installed the relevant components now:


[root@dthost27 ~]# rpm -qa | grep PostgreSQL

If none of them are installed, the following commands can be executed:


[root@dthost27 ~]# yum install postgresql-devel

(The postgresql and postgresql-libs components are installed incidentally during the installation.)

2. Install the psycopg2 dependency package

After ensuring that the dependent components exist, you can install them using the pip command:


[root@dthost27 ~]# pip install psycopg2-binary

Note: The psycopg2 dependency package in binary format is installed here. In fact, psycopg2 can also be installed, but sometimes an error will be reported when executing pip install psycopg2, while installing psycopg2-binary (after compilation) will not

Start the python test


import psycopg2

Supplement: Install psycopg2 Error Report _ Solution

Error message


(python3-virtualenv) [root@vl-bg-anaylsis02 extract_log]# pip3 install psycopg2
Collecting psycopg2
 Using cached psycopg2-2.8.4.tar.gz (377 kB)
  ERROR: Command errored out with exit status 1:
   command: /disk2/extract_log/python3-virtualenv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-2d9wyu3k/psycopg2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-2d9wyu3k/psycopg2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-2d9wyu3k/psycopg2/pip-egg-info
     cwd: /tmp/pip-install-2d9wyu3k/psycopg2/
  Complete output (23 lines):
  running egg_info
  creating /tmp/pip-install-2d9wyu3k/psycopg2/pip-egg-info/psycopg2.egg-info
  writing /tmp/pip-install-2d9wyu3k/psycopg2/pip-egg-info/psycopg2.egg-info/PKG-INFO
  writing dependency_links to /tmp/pip-install-2d9wyu3k/psycopg2/pip-egg-info/psycopg2.egg-info/dependency_links.txt
  writing top-level names to /tmp/pip-install-2d9wyu3k/psycopg2/pip-egg-info/psycopg2.egg-info/top_level.txt
  writing manifest file '/tmp/pip-install-2d9wyu3k/psycopg2/pip-egg-info/psycopg2.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
  <http://initd.org/psycopg/docs/install.html>).

  ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Solution For ubuntu


sudo apt-get install libpq-dev python3-dev

Solution For Fedora/Centos


yum install -y postgresql10
yum install postgresql-libs python3-devel postgresql-devel
yum install gcc

Related articles: