Estou trabalhando no projeto Django com virtualenv e conecto-o ao banco de dados local do postgres. quando eu executo o projeto diz,
ImportError: No module named psycopg2.extensions
então eu usei este comando para instalar
pip install psycopg2
depois, durante a instalação, dá o seguinte erro.
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
Muhammad Taqi
fonte
fonte
postgresql-server-X.Y
sozinha não ajudaria, porque isso apenas instala os arquivos binários, bibliotecas e dados do servidor, não os arquivos de desenvolvimento (que estão no pacote mencionado acima).Respostas:
Use estes comandos a seguir, isso resolverá o erro:
então atire:
e por ultimo:
fonte
sudo apt-get install python-dev
, além de obtê-lo para finalmente trabalhosudo apt-get install libpq-dev
trabalhou para mim!sudo apt-get install python3-psycopg2
para adicionar ao python3Acabei de executar este comando como raiz do terminal e o problema foi resolvido,
ou
fonte
libpq-dev
epython-dev
fez necessária mágicapostgis
? wootBasta instalar o libpq-dev
fonte
Para mim, este comando simples resolveu o problema:
Então eu posso fazer:
fonte
Para Python 3, eu fiz:
e então eu pude fazer:
fonte
Eles mudaram a embalagem do psycopg2. A instalação da versão binária corrigiu esse problema para mim. As respostas acima ainda são válidas se você quiser compilar o binário.
Veja http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8 .
E http://initd.org/psycopg/docs/install.html#binary-install-from-pypi
Portanto, se você não precisar compilar seu próprio binário, use:
fonte
psycopg2-binary
não deve ser usado na produção, porque causará alguns erros.psycopg2-binary
não deve ser usado na produção: initd.org/psycopg/docs/install.html#binary-install-from-pypi (Texto copiado: O pacote psycopg2-binary destina-se a iniciantes que começam a jogar com Python e PostgreSQL sem a necessidade de atenda aos requisitos de compilação. Se você é o mantenedor de um pacote de publicação dependendo do psycopg2, não deve usar 'psycopg2-binary' como uma dependência do módulo. Para uso em produção, é recomendável usar a distribuição de origem.)Você deve configurar o postgresql-server-dev-XY, onde XY é a versão dos servidores, e ele instalará a libpq-dev e outras variáveis de servidores nos módulos para desenvolvimento no servidor. No meu caso foi
No seu caso
fonte
Eu estava usando um ambiente virtual no Ubuntu 18.04, e como só queria instalá-lo como cliente, só precisava fazer:
E instalado sem problemas. Obviamente, você pode usar o binário como outras respostas disseram, mas eu preferi essa solução, pois ela foi declarada em um arquivo requirements.txt.
fonte