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.