Вам нужно установить postgresql-server-dev-XY для создания расширения на стороне сервера или libpq-dev для создания приложения на стороне клиента

106

Я работаю над проектом 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
  • 0
    Вы установили этот пакет? Если нет, его установка должна решить проблему. Обратите внимание, что установка только postgresql-server-XY не поможет, потому что это просто устанавливает двоичный файл сервера, библиотеки и файлы данных, а не файлы разработки (которые находятся в вышеупомянутом пакете).

4 ответа

252

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

sudo apt-get install postgresql

затем огонь:

sudo apt-get install python-psycopg2

и last:

sudo apt-get install libpq-dev
  • 0
    Я получил E: Package 'postgresql-9.1' has no installation candidate для установки первого, но sudo apt-get install postgresql был в порядке. Кроме этого, идеально!
  • 0
    @ miguel5, не могли бы вы дать краткое описание того, что вы сделали, вы также можете сначала запустить последнюю команду.
Показать ещё 10 комментариев
38

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

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
  • 4
    Большое спасибо, libpq-dev и python-dev сделали необходимую магию
16

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

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

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

 pip install psycopg2
1

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

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

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

pip3 install psycopg2

Ещё вопросы

Сообщество Overcoder
Наверх
Меню