Error when installing psycopg2-binary
via pip
in WSL Linux environment. Python version is 3.9.1
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.
It is said that the command pg_config
is missing. It is good if pg_config can be used. If you search for it, it looks like a PostgreSQL command (https://www.postgresql.jp/document/9.2/html/app-pgconfig.html), so you can guess that you should install PostgreSQL in your Linux environment.
Since it will be built from source, it seems that it will be necessary to install shared libraries etc. Go to the library repository once.
If you look at Issues, you'll find some references to pg_config. According to https://github.com/psycopg/psycopg2/issues/1200, Python 3.9 or later doesn't seem to work until 2.8.6 or later.
Try out. First, make sure that 2.8.5 cannot be installed.
$ docker run -it --rm python:3.9-slim bash
$ python -m pip install psycopg2-binary==2.8.5
Collecting psycopg2-binary==2.8.5
Downloading psycopg2-binary-2.8.5.tar.gz (381 kB)
|████████████████████████████████| 381 kB 8.0 MB/s
ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-qcdbyewy/psycopg2-binary_6829b82052994eb083b5f67ce9537531/setup.py'"'"'; __file__='"'"'/tmp/pip-install-qcdbyewy/psycopg2-binary_6829b82052994eb083b5f67ce9537531/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-pip-egg-info-dt29jovq
cwd: /tmp/pip-install-qcdbyewy/psycopg2-binary_6829b82052994eb083b5f67ce9537531/
Complete output (23 lines):
running egg_info
creating /tmp/pip-pip-egg-info-dt29jovq/psycopg2_binary.egg-info
writing /tmp/pip-pip-egg-info-dt29jovq/psycopg2_binary.egg-info/PKG-INFO
writing dependency_links to /tmp/pip-pip-egg-info-dt29jovq/psycopg2_binary.egg-info/dependency_links.txt
writing top-level names to /tmp/pip-pip-egg-info-dt29jovq/psycopg2_binary.egg-info/top_level.txt
writing manifest file '/tmp/pip-pip-egg-info-dt29jovq/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>).
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
As expected, it failed. Next, try installing 2.8.6. If it is as reported in Issue, it should succeed.
$ python -m pip install psycopg2-binary==2.8.6
Collecting psycopg2-binary==2.8.6
Downloading psycopg2_binary-2.8.6-cp39-cp39-manylinux1_x86_64.whl (3.0 MB)
|████████████████████████████████| 3.0 MB 7.9 MB/s
Installing collected packages: psycopg2-binary
Successfully installed psycopg2-binary-2.8.6
Solution. You can install it with pip install psycopg2-binary> = 2.8.6
.
Recommended Posts