Как исправить ERROR в pip install psycopg2==2.7.*?
Я пытаюсь разместить свое приложение, которое я создал на сервере www с помощью heroku. Но когда я ставлю в терминале на Ubuntu pip install psycopg2==2.7.*, я получаю такую ошибку:
ERROR: Command errored out with exit status 1:
command: /home/marcin/Python/learning_log/ll_env/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-c67buptz/psycopg2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-c67buptz/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-c67buptz/psycopg2/pip-egg-info
cwd: /tmp/pip-install-c67buptz/psycopg2/
Complete output (28 lines):
running egg_info
creating /tmp/pip-install-c67buptz/psycopg2/pip-egg-info/psycopg2.egg-info
writing /tmp/pip-install-c67buptz/psycopg2/pip-egg-info/psycopg2.egg-info/PKG-INFO
writing dependency_links to /tmp/pip-install-c67buptz/psycopg2/pip-egg-info/psycopg2.egg-info/dependency_links.txt
writing top-level names to /tmp/pip-install-c67buptz/psycopg2/pip-egg-info/psycopg2.egg-info/top_level.txt
writing manifest file '/tmp/pip-install-c67buptz/psycopg2/pip-egg-info/psycopg2.egg-info/SOURCES.txt'
/home/marcin/Python/learning_log/ll_env/lib/python3.8/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
warnings.warn(msg, warning_class)
/home/marcin/Python/learning_log/ll_env/lib/python3.8/site-packages/setuptools/command/egg_info.py:643: SetuptoolsDeprecationWarning: Custom 'build_py' does not implement 'get_data_files_without_manifest'.
Please extend command classes from setuptools instead of distutils.
warnings.warn(
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.
Что мне делать?
Вам необходимо установить pscopg2-binary и запустить в heroku
pip install psycopg2-binary
или pipenv install psycopg2-binary
в зависимости от вашего virtualenv
Вам нужны некоторые зависимости проверьте этот ответ https://stackoverflow.com/a/46877364/15208727
sudo apt install libpq-dev python3-dev
Мне удалось решить ту же проблему, установив предварительные условия Psycopg2 с помощью следующих команд на Debian.
pip install python3-dev
sudo apt install libpq-dev libpq-dev
Затем подтверждаю, что pg_config
находится на моем пути, делая pg_config --version
.
Для справки, вот соответствующий раздел из документации.
Предварительные условия сборки
Для установки Psycopg из исходного кода, из дистрибутива с исходным кодом, с GitHub или с PyPI необходимо выполнить предварительные условия сборки.
Psycopg - это обертка на языке C вокруг клиентской библиотеки libpq PostgreSQL. Чтобы установить ее из исходных текстов, вам потребуется:
компилятор языка C.
Заголовочные файлы Python. Обычно они устанавливаются в пакет, например python-dev или python3-dev. Сообщение типа error: Python.h: No such file or directory является признаком того, что заголовочные файлы Python отсутствуют.
Заголовочные файлы libpq. Обычно они устанавливаются в пакет, например libpq-dev. Если вы получаете ошибку: libpq-fe.h: No such file or directory you are missing them.
Программа pg_config: обычно она устанавливается пакетом libpq-dev, но иногда ее нет в каталоге PATH. Наличие ее в PATH значительно упрощает установку, поэтому попробуйте выполнить команду pg_config --version: если она вернет ошибку или неожиданный номер версии, найдите каталог, содержащий pg_config, поставляемый с нужной версией libpq (обычно это /usr/lib/postgresql/X.Y/bin/), и добавьте его в PATH:
.
$ export PATH=/usr/lib/postgresql/X.Y/bin/:$PATH
Вам нужен pg_config только для компиляции psycopg2, а не для его регулярного использования.