Вам необходимо установить postgresql-server-dev-X.Y для создания серверного расширения или libpq-dev для создания клиентского приложения

Я работаю над проектом Django с virtualenv и подключаю его к локальной базе данных postgres. когда я запускаю проект, говорит:

ImportError: No module named psycopg2.extensions

то я использовал эту команду для установки

pip install psycopg2

то во время установки он дает следующую ошибку.

Downloading/unpacking psycopg2==2.4.4
  Downloading psycopg2-2.4.4.tar.gz (648kB): 648kB downloaded
  Running setup.py (path:/home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2/setup.py) egg_info for package psycopg2

    Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.

    Complete output from command python setup.py egg_info:
    running egg_info

creating pip-egg-info/psycopg2.egg-info

writing pip-egg-info/psycopg2.egg-info/PKG-INFO

writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt

writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt

writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'

warning: manifest_maker: standard file '-c' not found



Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.



----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2
Storing debug log for failure in /home/muhammadtaqi/.pip/pip.log

Ответ 1

Используйте следующие команды: это решит ошибку:

sudo apt-get install postgresql

затем огонь:

sudo apt-get install python-psycopg2

и last:

sudo apt-get install libpq-dev

Ответ 2

Я просто запускаю эту команду в качестве корня из терминала, и проблема решена,

sudo apt-get install -y postgis postgresql-9.3-postgis-2.1
pip install psycopg2

или

sudo apt-get install libpq-dev python-dev
pip install psycopg2

Ответ 3

Для меня эта простая команда решила проблему:

sudo apt-get install postgresql postgresql-contrib libpq-dev python-dev

Тогда я могу сделать:

 pip install psycopg2

Ответ 4

Вы должны установить postgresql-server-dev-XY, где XY - версия вашего сервера, и он установит libpq-dev и другие переменные сервера в модули для разработки на стороне сервера. В моем случае это было

apt-get install postgresql-server-dev-9.5

Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово Следующие пакеты были автоматически установлены и больше не требуются: libmysqlclient18 mysql-common Используйте "apt-get autoremove", чтобы удалить их. Будут установлены следующие дополнительные пакеты:
libpq-dev Предлагаемые пакеты: postgresql-doc-10 Будут установлены следующие НОВЫЕ пакеты: libpq-dev postgresql-server-dev-9.5

В твоем случае

sudo apt-get install postgresql-server-dev-X.Y
sudo apt-get install python-psycopg2

Ответ 5

Для Python 3 я сделал:

sudo apt install python3-dev postgresql postgresql-contrib python3-psycopg2 libpq-dev

а затем я смог:

pip3 install psycopg2

Ответ 6

Они изменили упаковку для psycopg2. Установка бинарной версии исправила эту проблему для меня. Приведенные выше ответы сохраняются, если вы хотите скомпилировать двоичный файл самостоятельно.

См. Http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8.

Двоичные пакеты больше не устанавливаются по умолчанию. Пакет psycopg2-binary должен использоваться явно.

И http://initd.org/psycopg/docs/install.html#binary-install-from-pypi

Так что если вам не нужно компилировать свой собственный двоичный файл, используйте:

pip install psycopg2-binary

Ответ 7

Я использовал виртуальную среду в Ubuntu 18.04, и так как я хотел установить ее только как клиент, мне нужно было только сделать:

sudo apt install libpq-dev
pip install psycopg2

И установил без проблем. Конечно, вы можете использовать двоичный файл, как сказали другие ответы, но я предпочел это решение, так как оно было указано в файле require.txt.

Ответ 8

Просто установите libpq-dev

$ sudo apt-get install libpq-dev

Ответ 9

Если вы работаете с Linux (и, возможно, с другими системами, но я не могу сказать по своему опыту), вам нужно быть очень точным в том, какую версию python вы используете при установке пакета dev.

Когда я использовал команду

sudo apt-get install python3-dev

Я все еще сталкивался с некоторой ошибкой при попытке запустить

pip install psycopg2

Поскольку я использую Python 3.7, мне нужно было использовать команду

sudo apt-get install python3.7-dev

Очевидно, что если вы используете версию 3.5, вы бы изменили 7 на 5.