Errore: nessun modulo denominato psycopg2.extensions


86

Sto cercando di impostare un database PostgreSQL per il mio progetto django, cosa che credo di aver fatto ora grazie alle risposte alla mia ultima domanda Problemi nell'impostazione di un database postgreSQL per un progetto django . Ora sto cercando di eseguire il comando 'python manage.py runserver' nel Terminale per attivare il mio localhost, ma quando eseguo il comando, vedo questa risposta ...

Error: No module named psycopg2.extensions

Non sono sicuro di cosa significhi: ho provato a scaricare psycopg2 ma non riesco a trovare un modo per scaricare psycopg2 usando homebrew. Ho provato easy_install, pip install e sudo ma tutti restituiscono errori come questo ...

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

Come risolvere questo problema?


Non hai un compilatore installato e ne hai bisogno per creare il pacchetto psycopg2. Se puoi fornire dettagli sul tuo sistema operativo, le persone qui possono probabilmente aiutarti in questo.
Ian Clelland

@IanClelland Grazie Ian. Sono su Mac OS X 10.6.8. Ho installato homebrew se questo aiuta.
Jess

Controlla cosa stai usando interprete dalla giusta venv.
Alex78191

Risposte:


168

La prima cosa da fare è installare le dipendenze.

sudo apt-get build-dep python-psycopg2

Dopodiché vai nel tuo virtualenv e usa

pip install psycopg2-binary

Questi due comandi dovrebbero risolvere il problema.


7
Devo dire che non userò mai più nient'altro che pip, è molto più bello :-)
Harry

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

7
Qual è il punto di costruire le dipendenze con apt, quindi installarlo con pip? Cosa c'è di sbagliato nel singolo comando sudo apt-get install python-psycopg2? Ha funzionato bene per me.
kdbanman

2
ottenuto You must put some 'source' URIs in your sources.listdurante il tentativo di uno dei comandi di cui sopra
Revolucion per Monica

2
@ nba2020: sudo apt-get ...? Questi sono i prerequisiti di linux (debian / mint / ubuntu) per psycopg2-binary. Se usi Windows o qualcosa del genere dovresti invece trovare i prerequisiti di Windows per psycopg2-binary e applicarli prima di installare psycopg2-binary. O forse (non sono sicuro) puoi saltare i prerequisiti e installare psycopg2 invece di psycopg2-binary e potrebbe funzionare. Tuttavia psycopg2 (senza -binary) è deprecato, quindi sarà meglio se provi a installare correttamente psycopg2-binary.
mirek

26
pip install psycopg2-binary

Il pacchetto della ruota psycopg2 verrà rinominato dalla versione 2.8; per continuare l'installazione da binario, usa invece "pip install psycopg2-binary". Per dettagli vedere: http://initd.org/psycopg/docs/install.html#binary-install-from-pypi .


Questo funziona per me su Ubuntu 18.04 e Python 3. Grazie.
Danniel Little

Questo funziona per me e inoltre non richiede alcun permesso di root
Gianpaolo

Sono contento che aiuti. ^ _ ^
Charlie 木匠

1
Questo non mi aiuta abbastanza. Da qualche parte nella storia ho installato psycopg2 e versioni successive (da: -r requirements.txt) correttamente psycopg2-binary. Tutto ha funzionato "bene". Ma una volta disinstallato psycopg2 (senza -binary) ho ricevuto l'errore "Nessun modulo denominato psycopg2.extensions". Disinstallare / installare psycopg2-binary non mi aiuta. Per me i prererequisiti non sono stati installati (vedi la risposta di @FernandoMunoz: apt install build-dep python-psycopg2). L'installazione di questi pacchetti Debian e successivamente (!) Psycopg2-binary mi ha aiutato.
mirek

@mirek Grazie per il complemento.
Charlie 木匠

6

Per Django 2e python 3installare psycopg2utilizzando pip3:

pip3 install psycopg2

se si vuole evitare Compilare da sorgenti di installazione psycopg2-binaryinvece
Ivan Gonzalez

5

L'ho installato con successo usando questi comandi:

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

5

Solo per macOS Mojavecorrere pip install psycopg2-binary. Funziona bene per me, versione python ->Python 3.7.2


4

prima installazione apt-get install python-setuptools

allora prova easy_install psycopg2


4

Questo è ciò che mi ha aiutato su Ubuntu se il tuo python è stato installato dall'installer di Ubuntu. L'ho fatto dopo aver provato senza successo 'apt-get install' e 'pip install':

Nel terminal:

sudo synaptic

quindi nel campo di ricerca sinaptico scrivi

psycopg2

scegliere

python-psycopg2

contrassegnarlo per l'installazione utilizzando il tasto destro del mouse e premere "applica". Ovviamente, se non hai installato Synaptic, prima fai:

sudo apt-get install synaptic

2

In python 3.4, mentre sei in un ambiente virtuale, assicurati di avere prima le dipendenze di compilazione:

sudo apt-get build-dep python3-psycopg2

Quindi installalo:

pip install psycopg2 

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

2

In Alpine Linux (la maggior parte dei contenitori Docker):

apk add postgresql-dev

Poi:

pip install psycopg2-binary

1

Ho usato l'estensione solo dopo aver importato psycopg2:

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])

@fp Grazie per la tua risposta. Come hai importato psycopg2? Hai usato homebrew? Ho provato a eseguire il comando "import psycopg2" nel mio terminale ma restituisce "ImportError: No module named psycopg2".
Jess

Sto usando Ubuntu dove è pronto per l'installazione senza compilare .. L'esempio mostrato è in Python. Per installare in Windows guarda stickpeople.com/projects/python/win-psycopg Quello che vuoi è installarlo prima.
fp

@fp Grazie. Sono su Mac: esiste una soluzione simile per Mac?
Jess

@fb Grazie. Ci proverò :)
Jess

1

Sembra che tu abbia bisogno gcc-4.0e sarebbe utile specificare il tipo e la versione del tuo sistema operativo.

Forse questa domanda ti aiuterà un po ': installare GCC su Mac OS X Leopard senza installare Xcode

Aggiornare

Sono un utente Windows, quindi non posso testare la tua configurazione, ma una rapida ricerca su Google ha indicato altri collegamenti:


Grazie. Ho scaricato e installato GCC 10.6 poiché il mio sistema operativo è 10.6.8. Ho quindi eseguito easy_install psycopg2 ma ha restituito questo errore ... "nessuna directory inclusa in precedenza è stata trovata corrispondente a 'doc / src / _build' impossibile eseguire gcc-4.0: Nessun errore di file o directory di questo tipo: script di installazione terminato con errore: comando ' gcc-4.0 'non è riuscito con stato di uscita 1 ". Sai perché potrebbe essere?
Jess

1

Ho riscontrato l' No module named psycopg2.extensionserrore durante il tentativo di esecuzione pip2 install psycopg2su un Mac con Mavericks (10.9). Non penso che la mia traccia dello stack includesse un messaggio su gcc e includeva anche un suggerimento:

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

Ho cercato il pg_configfile nella mia Postgres installare e ha aggiunto la cartella che lo contiene al mio percorso: /Applications/Postgres.app/Contents/Versions/9.4/bin. Il tuo percorso potrebbe essere diverso, specialmente se hai una versione diversa di Postgres installata: vorrei solo curiosare finché non trovi la bin/cartella. Dopo aver fatto ciò, l'installazione ha funzionato.


1

prova questo:
sudo pip install -i https://testpypi.python.org/pypi psycopg2 == 2.7b2
.. questo è particolarmente utile se stai errore dell'uovo

sulle istanze di aws ec2 se si verifica un errore di gcc; prova questo
1. sudo yum install gcc python-setuptools python-devel postgresql-devel
2. sudo su -
3. sudo pip install psycopg2


1

Questo ha funzionato per me

python manage.py migrate


1

Ho avuto questo problema durante il tentativo di eseguire script python come sudo, mentre psycopg2 è stato installato tramite pip3 nella directory del mio utente.

Sono riuscito a risolvere il problema da solo rimuovendo la versione pip3 e installandola semplicemente tramite apt:

pip3 uninstall psycopg2
sudo apt install python3-psycopg2


0

In caso contrario, controlla di aver installato psycopg2

sudo apt-get install psycopg2

Installa le dipendenze.

sudo apt-get build-dep python-psycopg2

Questi due comandi dovrebbero risolvere il problema.


0
pip3 install django-psycopg2-extension

So di essere in ritardo e ci sono molte risposte qui che risolvono anche il problema. Ma oggi ho affrontato anche questo problema e niente di tutto questo mi aiuta. Quindi ho trovato il comando magico sopra che risolve il mio problema :-P. quindi sto postando questo come potrebbe essere il caso anche per te.
Buona codifica.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.