Eseguibile pg_config non trovato


771

Ho problemi con l'installazione di psycopg2. Ottengo il seguente errore quando provo a pip install psycopg2:

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

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build/psycopg2

Ma il problema pg_configè in realtà nel mio PATH; funziona senza problemi:

$ which pg_config
/usr/pgsql-9.1/bin/pg_config

Ho provato ad aggiungere il percorso pg_config al setup.cfgfile e crearlo usando i file sorgente che ho scaricato dal loro sito web ( http://initd.org/psycopg/ ) e ho ricevuto il seguente messaggio di errore!

Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'

Ma in realtà è lì !!!

Sono sconcertato da questi errori. Qualcuno può aiutare, per favore?

A proposito, ho sudotutti i comandi. Anche io sono su RHEL 5.5.


8
Quando si eseguono comandi come sudo, $PATHviene modificato. Puoi ricontrollare $ PATH come root?
Hugo Tavares,

1
Nel mio caso, corro ln -s /usr/pgsql-9.1/bin/pg_config /usr/sbin/pg_confige tutto ok!
CK.Nguyen,

Grazie @ CK.Nguyen, la tua mancia ha funzionato davvero per me.
Pratica il

Risposte:


766

pg_configè in postgresql-devel( libpq-devin Debian / Ubuntu, libpq-develsu Centos / Cygwin / Babun.)


66
Risolto dopo l'installazione libpq-devsu Ubuntu Lucido (10.04). Grazie in anticipo.
pylover

22
pg_configdi postgress.app è su /Applications/Postgres.app/Contents/Versions/<your version>/bin(Mac OS X)
Tim Daubenschütz

17
È libpqxx-develsu Fedora.
robsn,

55
sudo apt-get install libpq-devha lavorato per me su Ubuntu
Bill Cheatham il

48
su Alpine Linux: apk aggiungi postgresql-dev
RJ

385

Su Mac OS X, l'ho risolto usando il gestore di pacchetti homebrew

brew install postgresql

29
Eccellente! Ciò ha risolto il problema per me, ma i neofiti dovrebbero essere consapevoli che è necessario installare prima il gestore pacchetti Homebrew affinché il brewcomando funzioni.
Seane,

Ha funzionato anche per me, anche se ho fatto l'installazione brew dopo l'installazione di pgadmin.
Khanal,

8
Questo non installa l'intero database?
zmbq,

3
Ho bisogno del extrabrew link postgresql
vincentlcy del

1
Per aggiungere al commento di @ seane, utilizzare questa procedura dettagliata per l'installazione homebrew.
Bruce Wayne,

236

Hai installato python-dev? Se lo hai già, prova anche a installarelibpq-dev

sudo apt-get install libpq-dev python-dev

Dall'articolo: Come installare psycopg2 in virtualenv


Nel mio computer, installo solo il client di Postgresql, quindi devi installare libpq-dev e python-dev.
bnPYSse il

2
Dubito che sia necessario python-dev.
juanitogan,

mi ha aiutato.Grazie
Arun,

4
python3-dev è necessario. Senza di essa ricevoPython.h: No such file or directory
Krubo il

1
un'altra dipendenza richiesta per questo èapt-get install -y gcc
Anum Sheraz,

75

Anche su OSX. Postgress.app installato da http://postgresapp.com/ ma con lo stesso problema.

Ho trovato pg_confignei contenuti di quell'app e ho aggiunto la directory a $PATH.

Era a /Applications/Postgres.app/Contents/Versions/latest/bin. Quindi, questo ha funzionato: export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH".


3
@GianlucaLodigiani puoi farlo anche se non vuoi riavviare la consolePATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH" pip install psycopg2
Bernardo Duarte


38

Questo è ciò che ha funzionato per me su CentOS, prima installazione:

sudo yum install postgresql postgresql-devel python-devel

Su Ubuntu basta usare i pacchetti apt-get equivalenti.

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

E ora includi il percorso della tua directory binaria postgresql con la tua installazione pip, questo dovrebbe funzionare per Linux basato su Debain o RHEL:

sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2

Assicurati di includere il percorso corretto. È tutto :)


1
Su Ubuntu è sudo apt-get install postgresql postgresql-dev python-dev, e questo ha funzionato per me.
Modulitos,

2
funziona anche su Amazon Linux AMI a partire da dicembre 2016. Assicurarsi inoltre che gccsia installato e python3-devel.
villasv,

grazie!!! Ha funzionato anche su Fedora 32 Workstation!
Marcelo Gazzola,


34

Dovresti aggiungere i requisiti di Python usati in Postgres su Ubuntu. Correre:

sudo apt-get install libpq-dev python-dev

32

Per riassumere, ho anche affrontato esattamente lo stesso problema. Dopo aver letto molti post di stackoverflow e blog online, la soluzione finale che ha funzionato per me è questa:

1) PostgreSQL (sviluppo o qualsiasi versione stabile) deve essere installato prima di installare psycopg2.

2) Il file pg_config (questo file si trova normalmente nella cartella bin della cartella di installazione PostgreSQL) PATH doveva essere esplicitamente impostato prima di installare psycopg2. Nel mio caso, l'installazione PATH per PostgreSQL è:

/opt/local/lib/postgresql91/

così per impostare esplicitamente il PERCORSO del file pg_config, ho inserito il seguente comando nel mio terminale:

PATH=$PATH:/opt/local/lib/postgresql91/bin/

Questo comando assicura che quando si tenta di installare pip psycopg2, questa volta troverà automaticamente il PERCORSO su pg_config.

Ho anche pubblicato un errore completo con trace e la sua soluzione sul mio blog che potresti voler fare riferimento. È per Mac OS X ma il problema PATH pg_config è generico e applicabile anche a Linux.


6
per me su OS X il percorso era simile al seguentePATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
andilabs

@andi Sì, il percorso di installazione di Postgres può essere diverso ma la ricetta di installazione per psycopg2 che ho menzionato sopra rimane la stessa. Spero che abbia aiutato.
Ali Raza Bhayani,

30

sudo apt-get install libpq-dev funziona per me su Ubuntu 15.4


Se si utilizza Ubuntu più recente, utilizzare comunque le istruzioni di installazione di cui sopra. Vedi pg_config
palik

23

Su Linux Mint ha sudo apt-get install libpq-devfunzionato per me.


21

Puoi installare file binari precompilati su qualsiasi piattaforma con pipo conda:

python -m pip install psycopg2-binary

o

conda install psycopg2

Si prega di notare che la pagina pypi psycopg2-binary raccomanda di costruire dalla fonte in produzione:

Il pacchetto binario è una scelta pratica per lo sviluppo e il test, ma in produzione si consiglia di utilizzare il pacchetto creato da fonti

Per utilizzare il pacchetto creato da fonti, utilizzare python -m pip install psycopg2. Tale processo richiederà diverse dipendenze ( documentazione ) (l'enfasi è mia):

  • Compilatore AC .
  • I file di intestazione di Python . Di solito sono installati in un pacchetto come python-dev . Un messaggio come errore: Python.h: nessun file o directory indica che mancano le intestazioni di Python.
  • I file di intestazione libpq . Di solito sono installati in un pacchetto come libpq-dev . Se viene visualizzato un errore: libpq-fe.h: nessun file o directory mancante.
  • Il programma pg_config : di solito è installato dal pacchetto libpq-dev ma a volte non si trova in una directory PATH. La presenza nel PATH semplifica notevolmente l'installazione, quindi prova a eseguire pg_config --version: se restituisce un errore o un numero di versione imprevisto, individua la directory contenente pg_config fornita con la versione libpq corretta (di solito / usr / lib / postgresql / XY / bin /) e aggiungilo al PERCORSO: $ export PATH=/usr/lib/postgresql/X.Y/bin/:$PATH devi solo pg_config per compilare psycopg2, non per il suo uso regolare.

Su Ubuntu, dovevo prima installare la libreria libpq-dev e poi eseguire nuovamente il comando pip install:apt install libpq-dev
Benjamin

20

AGGIORNA /etc/yum.repos.d/CentOS-Base.repo, sezioni [base] e [aggiornamenti]
ADD exclude = postgresql *

curl -O http://yum.postgresql.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpmr  
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm

yum install postgresql  
yum install postgresql-devel

PATH=$PATH:/usr/pgsql-9.1/bin/

pip install psycopg2

20

Per coloro che eseguono OS X, questa soluzione ha funzionato per me:

1) Installa Postgres.app:

http://www.postgresql.org/download/macosx/

2) Quindi apri il Terminale ed esegui questo comando, sostituendo dove dice {{version}} con il numero di versione di Postgres:

export PATH = $ PATH: /Applications/Postgres.app/Contents/Versions / {{version}} / bin

per esempio

export PATH = $ PATH: /Applications/Postgres.app/Contents/Versions/9.4/bin


O collega simbolicamente all'ultima versionesudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config
Subin Sebastian

17

Prova ad aggiungerlo al PERCORSO:

PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2

-bash: cd: /usr/pgsql-x.x/bin/: No such file or directory
pylover

@pylover, devi usare il percorso corretto per la tua cartella bin di Postgres. Sei sicuro che /usr/pgsql-x.x/bin/sia corretto?
Marboni,

Sarebbe anche sufficiente solo aggiungere la cartella in cui pg_vivono tutti i file importanti . Per postgres.app questo percorso su Mac OS X è /Applications/Postgres.app/Contents/Versions/9.3/bin. PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin Aggiorna la tua versione * se è stata rilasciata una nuova versione!
Tim Daubenschütz,

Questo ha funzionato per me su OS X El Capitan:PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/
David Hariri,

16

La soluzione di Ali ha funzionato per me, ma ho avuto problemi a trovare la posizione della cartella bin. Un modo rapido per trovare il percorso su Mac OS X è aprire psql (c'è un collegamento rapido nella barra dei menu in alto). Questo aprirà una finestra terminale separata e sulla seconda riga il percorso della tua installazione di Postgres apparirà così:

My-MacBook-Pro:~ Me$ /Applications/Postgres93.app/Contents/MacOS/bin/psql ; exit;

Il tuo file pg_config si trova nella cartella bin. Pertanto, prima di installare psycopg2 impostare il percorso del file pg_config:

PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin/

o per la versione più recente:

PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin

Quindi installare psycopg2.


1
I nuovi documenti utilizzano il seguente percorso:/Applications/Postgres.app/Contents/Versions/9.3/bin
jpimentel

Sembra muoversi. find /usr/local -name 'pg_config'
Prassolitico il

11

Devi aggiornare il tuo pip prima di installare psycopg2. Usa questo comando

pip install --upgrade pip

Una risposta più dettagliata potrebbe essere utile nella maggior parte dei casi.
bkausbk,

11

Lo lascerò qui per la prossima sfortunata anima che non può aggirare questo problema nonostante tutte le soluzioni fornite. Basta usaresudo pip3 install psycopg2-binary


Questo non ha funzionato per me. brew install postgresqlRisolto solo .
Tsando,

Potrebbe essere necessario pip install psycopg2-binaryper me: pip -> python2, pip3 -> python3. Ma finché hai funzionato, è stata una delle tante soluzioni!
DuDoff,

9

Ho appena risolto il problema in Cent OS 7:

export PATH=$PATH:/usr/pgsql-9.5/bin

assicurati che la tua versione PostgreSql corrisponda alla versione corretta sopra.


9

Su Mac OS X e se si utilizza l'app Postgres ( http://postgresapp.com/ ):

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

Non è necessario specificare la versione di Postgres in questo comando. Verrà sempre indicato l'ultimo.

e fai

pip install psycopg2

PS: se le modifiche non si riflettono potrebbe essere necessario riavviare il prompt Terminale / Comando

fonte




8

Su MacOS, la soluzione più semplice sarà quella di collegare simbolicamente il binario corretto, che si trova sotto il pacchetto Postgres.

sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config

Questo è abbastanza innocuo e, se necessario, tutte le applicazioni saranno in grado di utilizzarlo a livello di sistema.


Funziona per me, tuttavia non è stato necessario farlo. Grazie!
John Ottenlips,

Funziona davvero per me!
Hadnazzar,

5

sudo yum install postgresql-devel (centos6X)

pip install psycopg2 == 2.5.2


5

Qui, per completezza di OS X: se installi PostgreSQL da MacPorts, pg_config sarà in /opt/local/lib/postgresql94/bin/pg_config .

Quando hai installato MacPorts, è già stato aggiunto /opt/local/binal tuo PERCORSO.

Quindi, questo risolverà il problema: $ sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config

Ora pip install psycopg2sarà in grado di funzionare pg_configsenza problemi.


4

A quelli su macOS Catalina che usano la zshshell che hanno installato anche l' app Postgres :

Apri il tuo ~/.zshrcfile e aggiungi la seguente riga:

export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"

Quindi chiudi tutti i tuoi terminali, riaprili e avrai risolto il tuo problema.

Se non si desidera chiudere i terminali, è sufficiente entrare source ~/.zshrcin qualsiasi terminale su cui si desidera continuare a lavorare.


Questo ha funzionato per me su Mac e zshshell!
Aditya Rao,

4

Per gli utenti Mac, estendi la tua variabile di percorso per includere PostgreSQL in questo modo export PATH=$PATH:/Library/PostgreSQL/12/bin.


3

Ecco come sono riuscito a installare psycopg2

$ wget http://initd.org/psycopg/tarballs/PSYCOPG-2-5/psycopg2-2.5.3.tar.gz
$ tar -xzf psycopg2-2.5.3.tar.gz
$ cd psycopg2-2.5.3
$ pip install .

2

Sono abbastanza sicuro che tu abbia riscontrato lo stesso "problema", quindi ti offrirò la soluzione estremamente semplice ...

Nel tuo caso, il percorso effettivo che devi aggiungere a $ PATH (o come parametro di comando) è:

/usr/pgsql-9.1/bin/pg_config

non

/usr/pgsql-9.1/bin

Ad esempio, se si esegue successivamente lo script python setup.py, lo si eseguirà in questo modo:

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

Probabilmente troppo tardi, ma comunque la soluzione più semplice.

MODIFICA DOPO:

Sotto ulteriori test ho scoperto che se inizialmente aggiungi il percorso a pg_config nel modulo

/usr/pgsql-9.1/bin

(senza / pg_config dopo ..... / bin) ed esegui il comando pip install funzionerà.

Tuttavia, se poi decidi di seguire l'indicazione per eseguire python setup.py, dovrai specificare il percorso con / pg_config dopo ..... / bin, cioè

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

Un'alternativa all'aggiunta della directory pgsql / bin al PERCORSO che ho usato un bel po 'è il collegamento simbolico /usr/pgsql-9.6/bin/pg_config(o qualunque cosa sia chiamata sul tuo sistema), in /usr/bin/pg_configquesto modo è disponibile nel PERCORSO che hai già.
Ralph Bolton,

2

per CentOS / RedHat assicurarsi che si /etc/alternatives/pgsql-pg_configtratti di un collegamento simbolico non interrotto

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.