Я работаю над проектом 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
python
django
postgresql
Мухаммед Таки
источник
источник
postgresql-server-X.Y
сама по себе не поможет, потому что это просто устанавливает двоичный файл сервера, библиотеки и файлы данных, а не файлы разработки (которые находятся в вышеупомянутом пакете).Ответы:
Используйте эти следующие команды, это решит ошибку:
затем огонь:
и последнее:
источник
sudo apt-get install python-dev
чтобы он наконец заработалsudo apt-get install libpq-dev
работал на меня!sudo apt-get install python3-psycopg2
для добавления в python3Я просто запускаю эту команду как root от терминала, и проблема решена,
или
источник
libpq-dev
иpython-dev
сделал необходимую магиюpostgis
? WootПросто установите libpq-dev
источник
Для меня эта простая команда решила проблему:
Тогда я могу сделать:
источник
Для Python 3 я сделал:
и тогда я смог сделать:
источник
Они изменили упаковку для psycopg2. Установка бинарной версии исправила эту проблему для меня. Приведенные выше ответы сохраняются, если вы хотите скомпилировать двоичный файл самостоятельно.
См. Http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8 .
И http://initd.org/psycopg/docs/install.html#binary-install-from-pypi
Поэтому, если вам не нужно компилировать свой собственный двоичный файл, используйте:
источник
psycopg2-binary
не должны использоваться в производстве, потому что это вызовет некоторые ошибки.psycopg2-binary
не должны использоваться в производстве: initd.org/psycopg/docs/install.html#binary-install-from-pypi (Скопированный текст: пакет psycopg2-binary предназначен для начинающих, чтобы начать играть с Python и PostgreSQL без необходимости соответствовать требованиям к сборке. Если вы являетесь сопровождающим пакета публикации в зависимости от psycopg2, вы не должны использовать «psycopg2-binary» в качестве зависимости модуля. Для производственного использования рекомендуется использовать исходный дистрибутив.)Вы должны установить postgresql-server-dev-XY, где XY версия вашего сервера, и он установит libpq-dev и другие переменные сервера в модули для разработки на стороне сервера. В моем случае это было
В твоем случае
источник
Я использовал виртуальную среду в Ubuntu 18.04, и так как я хотел установить ее только как клиент, мне нужно было только сделать:
И установил без проблем. Конечно, вы можете использовать двоичный файл, как сказали другие ответы, но я предпочел это решение, поскольку оно было указано в файле require.txt.
источник