Erro: Nenhum módulo denominado psycopg2.extensions


86

Estou tentando configurar um banco de dados PostgreSQL para meu projeto django, o que acredito ter feito agora graças às respostas à minha última pergunta Problemas ao configurar um banco de dados postgreSQL para um projeto django . Agora estou tentando executar o comando 'python manage.py runserver' no Terminal para ativar meu host local, mas quando executo o comando, vejo esta resposta ...

Error: No module named psycopg2.extensions

Não tenho certeza do que isso significa - tentei baixar psycopg2, mas não consigo encontrar uma maneira de baixar psycopg2 usando homebrew. Eu tentei easy_install, pip install e sudo, mas todos retornam erros como este ...

Downloading http://www.psycopg.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.5.tar.gz
Processing psycopg2-2.4.5.tar.gz
Writing /tmp/easy_install-l7Qi62/psycopg2-2.4.5/setup.cfg
Running psycopg2-2.4.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-l7Qi62/psycopg2-2.4.5/egg-dist-tmp-PBP5Ds
no previously-included directories found matching 'doc/src/_build'
unable to execute gcc-4.0: No such file or directory
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1

Como consertar isto?


Você não tem um compilador instalado e precisa de um para construir o pacote psycopg2. Se você puder fornecer detalhes sobre seu sistema operacional, as pessoas aqui provavelmente podem ajudá-lo com isso.
Ian Clelland

@IanClelland Obrigado Ian. Estou no Mac OS X 10.6.8. Eu tenho o homebrew instalado se isso ajudar.
Jess

Verifique o que você está usando o intérprete do venv certo.
Alex78191

Respostas:


168

A primeira coisa a fazer é instalar as dependências.

sudo apt-get build-dep python-psycopg2

Depois disso, entre no seu virtualenv e use

pip install psycopg2-binary

Esses dois comandos devem resolver o problema.


7
Devo dizer que nunca mais usarei outra coisa senão pip, é muito melhor :-)
Harry

11
Para Python 3,sudo apt-get build-dep python3-psycopg2
laike9m

7
Qual é o ponto de construir as dependências com o apt e depois instalar com pip? O que há de errado com o comando único sudo apt-get install python-psycopg2? Funcionou bem para mim.
kdbanman de

2
consegui You must put some 'source' URIs in your sources.listenquanto tentava qualquer um dos comandos acima
Revolucion for Monica

2
@ nba2020: sudo apt-get ...? Estes são os pré-requisitos do Linux (debian / mint / ubuntu) para psycopg2-binary. Se você usar o Windows ou algo assim, deverá encontrar os pré-requisitos do Windows para psycopg2-binary e aplicá-los antes de instalar o psycopg2-binary. Ou talvez (não tenho certeza) você possa pular os pré-requisitos e instalar psycopg2 em vez de psycopg2-binary e isso poderia funcionar. No entanto, psycopg2 (sem -binary) está obsoleto, então será melhor se você tentar instalar psycopg2-binary corretamente.
mirek

26
pip install psycopg2-binary

O pacote de roda psycopg2 será renomeado a partir da versão 2.8; para continuar a instalação a partir do binário, use "pip install psycopg2-binary". Para obter detalhes, consulte: http://initd.org/psycopg/docs/install.html#binary-install-from-pypi .


Isso funciona para mim no ubuntu 18.04 e python 3. Obrigado.
Danniel Little

Isso funciona para mim e também não requer nenhuma permissão de root
Gianpaolo

Que bom que ajuda. ^ _ ^
Charlie 木匠

1
Isso não me ajuda o suficiente. Em algum lugar da história, instalei psycopg2 e posterior (de: -r requisitos.txt) corretamente psycopg2-binário. Tudo funcionou "bem". Mas assim que desinstalei psycopg2 (sem -binary), recebi o erro "Nenhum módulo chamado psycopg2.extensions". Desinstalar / instalar psycopg2-binary não me ajuda. Para mim, os pré-requisitos não foram instalados (veja a resposta de @FernandoMunoz: apt install build-dep python-psycopg2). Instalar esses pacotes Debian e posteriores (!) Psycopg2-binary me ajudou.
mirek

@mirek Obrigado pelo complemento.
Charlie 木匠

6

Para Django 2e python 3instalar psycopg2usando pip3:

pip3 install psycopg2

se você quiser evitar a construção da fonte instalar psycopg2-binaryem vez
Ivan Gonzalez

5

Eu instalei com sucesso usando estes comandos:

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

5

Para macOS Mojaveapenas correr pip install psycopg2-binary. Funciona bem para mim, versão python ->Python 3.7.2


4

primeira instalação apt-get install python-setuptools

Então tente easy_install psycopg2


4

Isso é o que me ajudou no Ubuntu se o seu python foi instalado a partir do instalador do Ubuntu. Eu fiz isso após tentar sem sucesso 'apt-get install' e 'pip install':

No terminal:

sudo synaptic

então, no campo de pesquisa sináptica, escreva

psycopg2

escolher

python-psycopg2

marque-o para instalação usando o botão direito do mouse e pressione 'aplicar'. Claro, se você não instalou o Synaptic, faça primeiro:

sudo apt-get install synaptic

2

No python 3.4, enquanto estiver em um ambiente virtual, certifique-se de ter as dependências de compilação primeiro:

sudo apt-get build-dep python3-psycopg2

Em seguida, instale-o:

pip install psycopg2 

E: You must put some 'source' URIs in your sources.list
Cerin de

2

No Alpine Linux (a maioria dos contêineres docker) faça:

apk add postgresql-dev

Então:

pip install psycopg2-binary

1

Usei a extensão depois de importar apenas psycopg2:

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])

@fp Obrigado pela sua resposta. Como você importou psycopg2? Você usou homebrew? Tentei executar o comando 'import psycopg2' no meu Terminal, mas ele retorna 'ImportError: Nenhum módulo denominado psycopg2'.
Jess

Estou usando o ubuntu onde está pronto para instalar sem compilar .. O exemplo mostrado é em python. Para instalar no windows olhe em stickpeople.com/projects/python/win-psycopg O que você quer é instalar primeiro.
fp

@fp Obrigado. Estou no mac - existe uma solução semelhante para o mac?
Jess

@fb Obrigado. Vou tentar :)
Jess,

1

Parece que você precisa gcc-4.0, e seria útil especificar o tipo e a versão do seu sistema operacional.

Talvez esta pergunta o ajude um pouco: Instalando o GCC no Mac OS X Leopard sem instalar o Xcode

Atualizar

Eu sou um usuário do Windows, então não posso testar sua configuração, mas um rápido google apontou para mais alguns links:


Obrigado. Baixei e instalei o GCC 10.6 porque meu sistema operacional é 10.6.8. Em seguida, executei easy_install psycopg2, mas ele retornou este erro ... "nenhum diretório incluído anteriormente encontrado correspondente a 'doc / src / _build', incapaz de executar o gcc-4.0: Nenhum arquivo ou erro de diretório: script de configuração saiu com erro: comando ' gcc-4.0 'falhou com o status de saída 1 ". Você sabe por que isso pode ser?
Jess

1

Encontrei o No module named psycopg2.extensionserro ao tentar executar pip2 install psycopg2em um Mac executando o Mavericks (10.9). Não acho que meu rastreamento de pilha incluiu uma mensagem sobre o gcc e também incluiu uma dica:

Error: pg_config executable not found.

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'.

Olhei para o pg_configarquivo no meu Postgres instalar e adicionado a pasta que o contém para o meu caminho: /Applications/Postgres.app/Contents/Versions/9.4/bin. Seu caminho pode ser diferente, especialmente se você tiver uma versão diferente do Postgres instalada - eu apenas daria uma olhada até encontrar a bin/pasta. Depois de fazer isso, a instalação funcionou.


1

tente isto:
sudo pip install -i https://testpypi.python.org/pypi psycopg2 == 2.7b2
.. isso é especialmente útil se você estiver tendo um erro de ovo

em instâncias do aws ec2 se você encontrar o erro gcc; experimente
1. sudo yum install gcc python-setuptools python-devel postgresql-devel
2. sudo su -
3. sudo pip install psycopg2



1

Eu tive esse problema ao tentar executar o script python como um sudo, enquanto psycopg2 foi instalado via pip3 no diretório do meu próprio usuário.

Consegui resolver o problema sozinho removendo a versão pip3 e apenas instalando-o via apt:

pip3 uninstall psycopg2
sudo apt install python3-psycopg2


0

Verifique se você instalou psycopg2 se não

sudo apt-get install psycopg2

Instale as dependências.

sudo apt-get build-dep python-psycopg2

Esses dois comandos devem resolver o problema.


0
pip3 install django-psycopg2-extension

Eu sei que estou atrasado e há muitas respostas aqui que também resolvem o problema. Mas hoje também enfrentei esse problema e nada disso me ajuda. Então eu encontrei o comando mágico acima que resolve meu problema :-P. então estou postando isso, pois pode ser o caso para você também.
Boa codificação.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.