Fail to Install psycopg2
TL;DR
sudo apt update && sudo apt install libpq-dev
psycopg2をpipでインストールしようとしていたら
code: sh
$ pip install -r src/backend/requirements.txt
Defaulting to user installation because normal site-packages is not writeable
Collecting Django==3.2.7 (from -r src/backend/requirements.txt (line 1))
Using cached Django-3.2.7-py3-none-any.whl.metadata (3.9 kB)
Collecting psycopg2 (from -r src/backend/requirements.txt (line 2))
Using cached psycopg2-2.9.9.tar.gz (384 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
running egg_info
creating /tmp/pip-pip-egg-info-ai0m8xuw/psycopg2.egg-info
writing /tmp/pip-pip-egg-info-ai0m8xuw/psycopg2.egg-info/PKG-INFO
writing dependency_links to /tmp/pip-pip-egg-info-ai0m8xuw/psycopg2.egg-info/dependency_links.txt
writing top-level names to /tmp/pip-pip-egg-info-ai0m8xuw/psycopg2.egg-info/top_level.txt
writing manifest file '/tmp/pip-pip-egg-info-ai0m8xuw/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
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.
vscode ➜ /workspaces/ft_transcendense_42 (28-devcontainer) $ pip install psycopg2-binary
Defaulting to user installation because normal site-packages is not writeable
Collecting psycopg2-binary
Downloading psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (4.4 kB)
Downloading psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.9/2.9 MB 35.6 MB/s eta 0:00:00
Installing collected packages: psycopg2-binary
Successfully installed psycopg2-binary-2.9.9
vscode ➜ /workspaces/ft_transcendense_42 (28-devcontainer) $ pip install -r src/backend/requirements.txt
Defaulting to user installation because normal site-packages is not writeable
Collecting Django==3.2.7 (from -r src/backend/requirements.txt (line 1))
Using cached Django-3.2.7-py3-none-any.whl.metadata (3.9 kB)
Collecting psycopg2 (from -r src/backend/requirements.txt (line 2))
Using cached psycopg2-2.9.9.tar.gz (384 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
running egg_info
creating /tmp/pip-pip-egg-info-4wry0uze/psycopg2.egg-info
writing /tmp/pip-pip-egg-info-4wry0uze/psycopg2.egg-info/PKG-INFO
writing dependency_links to /tmp/pip-pip-egg-info-4wry0uze/psycopg2.egg-info/dependency_links.txt
writing top-level names to /tmp/pip-pip-egg-info-4wry0uze/psycopg2.egg-info/top_level.txt
writing manifest file '/tmp/pip-pip-egg-info-4wry0uze/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
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.
code: sh
$ sudo apt install libpq-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package libpq-dev
libpq-devが入らない...
apt updateしたらいけた
The pg_config program: it is usually installed by the libpq-dev package but sometimes it is not in a PATH directory. Having it in the PATH greatly streamlines the installation, so try running pg_config --version: if it returns an error or an unexpected version number then locate the directory containing the pg_config shipped with the right libpq version (usually /usr/lib/postgresql/X.Y/bin/) and add it to the PATH:
export PATH=/usr/lib/postgresql/X.Y/bin/:$PATH