pg_config yürütülebilir bulunamadı


769

Psycopg2'yi yüklerken sorun yaşıyorum. Ben denediğimde aşağıdaki hatayı alıyorum 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

Ama sorun pg_configaslında benim içimde PATH; sorunsuz çalışır:

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

Pg_config yolunu setup.cfgdosyaya eklemeyi ve kendi web sitelerinden indirdiğim kaynak dosyaları kullanarak oluşturmayı denedim ( http://initd.org/psycopg/ ) ve aşağıdaki hata mesajını alıyorum!

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

Ama aslında var !!!

Bu hatalardan şaşkınım. Birisi yardım edebilir mi lütfen?

Bu arada, sudotüm komutları ben . Ayrıca RHEL 5.5 kullanıyorum.


8
Siz komutları çalıştırdığınızda sudo, $PATHdeğiştirilir. Lütfen $ PATH'inizi root olarak iki kez kontrol edebilir misiniz?
Hugo Tavares

1
Benim durumumda, koşuyorum ln -s /usr/pgsql-9.1/bin/pg_config /usr/sbin/pg_configve her şey yolunda!
CK.Nguyen

Teşekkürler @ CK.Nguyen bahşiş gerçekten benim için çalıştı.
pratibha

Yanıtlar:


764

pg_configolduğu postgresql-devel( libpq-devDebian / Ubuntu, libpq-develCentos / Cygwin / babun ile).


66
Ubuntu libpq-devlucid (10.04) üzerine kurulduktan sonra çözüldü . Şimdiden teşekkür ederim.
pilover

22
pg_configpostgress.app altındadır ait /Applications/Postgres.app/Contents/Versions/<your version>/bin(Mac OS X)
Tim Daubenschütz

17
Bu var libpqxx-develfötr.
robsn

55
sudo apt-get install libpq-devUbuntu
Bill Cheatham'da

48
Linux üzerinde APK: postgresql-dev ekle
RJ

384

Mac OS X'te, homebrew paket yöneticisini kullanarak çözdüm

brew install postgresql

29
Mükemmel! Bu benim için sorunu çözdü, ancak yeni başlayanlar komutun çalışması için önce Homebrew paket yöneticisini kurmanız gerektiğini bilmelidir brew.
seane

PGadmin kurulumundan sonra demlemek kurulumunu yapmama rağmen benim için de çalıştı.
Khanal

8
Bu, tüm veritabanını yüklemiyor mu?
zmbq

3
Ekstra ihtiyacım varbrew link postgresql
vincentlcy

1
@ Seane yorumuna eklemek için yüklemek için bu izlenecek yolu kullanın homebrew.
Bruce Wayne

236

Yüklediniz mi python-dev? Zaten varsa, yüklemeyi de deneyinlibpq-dev

sudo apt-get install libpq-dev python-dev

Makaleden: Virtualenv altında psycopg2 nasıl kurulur


Bilgisayarımda, sadece Postgresql istemcisini yüklüyorum, böylece libpq-dev ve python-dev'i yüklemelisiniz.
bnPYSse

2
Kuşkusuz python-dev gereklidir.
juanitogan

Bana yardımcı oldu.Teşekkürler
Arun

4
python3-dev gereklidir. Bu olmadan olsunPython.h: No such file or directory
krubo

1
bunun için bir bağımlılık daha gerekiyorapt-get install -y gcc
Anum Sheraz

74

Ayrıca OSX'te. Postgress.app http://postgresapp.com/ adresinden yüklendi, ancak aynı sorunla karşılaşıldı.

pg_configBu uygulamanın içeriğinde buldum ve dir ekledi $PATH.

Öyleydi /Applications/Postgres.app/Contents/Versions/latest/bin. Yani bu çalıştı: export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH".


3
@GianlucaLodigiani, konsolu yeniden başlatmak istemiyorsanız bunu da yapabilirsinizPATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH" pip install psycopg2
Bernardo Duarte

45

Alp günü içeren kütüphane pg_configolduğunu postgresql-dev. Yüklemek için şunu çalıştırın:

apk add postgresql-dev

38

CentOS'ta benim için işe yarayan şey bu, ilk kurulum:

sudo yum install postgresql postgresql-devel python-devel

Ubuntu'da sadece apt-get paketlerini kullanın.

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

Ve şimdi pip install ile postgresql ikili dizininizin yolunu ekleyin, bu Debain veya RHEL tabanlı Linux için çalışmalıdır:

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

Doğru yolu eklediğinizden emin olun. Bu kadar :)


1
Ubuntu'da bu sudo apt-get install postgresql postgresql-dev python-devbenim için işe yaradı.
modulitos

2
Ayrıca Aralık 2016'dan itibaren Amazon Linux AMI üzerinde çalışmaktadır. Ayrıca gccyüklü ve python3-devel emin olun .
villasv

teşekkür ederim!!! Fedora 32 İş İstasyonu üzerinde de çalıştı!
Marcelo Gazzola


34

Ubuntu'daki Postgres'te kullanılan python gereksinimlerini eklemelisiniz. Çalıştırmak:

sudo apt-get install libpq-dev python-dev

32

Özetle, aynı problemle de karşılaştım. Çok sayıda stackoverflow yayını ve çevrimiçi blog okuduktan sonra, benim için çalışan son çözüm şuydu:

1) psycopg2 kurulmadan önce PostgreSQL (geliştirme veya kararlı sürüm) kurulmalıdır.

2) pg_config dosyası (bu dosya normalde PostgreSQL kurulum klasörünün bin klasöründe bulunur) PATH, psycopg2'yi kurmadan önce açıkça ayarlanmalıdır. Benim durumumda, PostgreSQL için PATH kurulumu:

/opt/local/lib/postgresql91/

bu yüzden pg_config dosyasının PATH değerini açıkça ayarlamak için terminalime şu komutu girdim:

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

Bu komut, psycopg2'yi yüklemeye çalıştığınızda, bu sefer otomatik olarak pg_config için PATH'yi bulmasını sağlar.

Ben de tam iz hata ve benim onun çözümünü attılar bloga sen başvurmak isteyebilirsiniz. Mac OS X için ama pg_config PATH sorunu geneldir ve Linux için de geçerlidir.


6
OS X'de benim için yol böyle görünüyorduPATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
andilabs

@andi Yea, Postgres'in kurulum yolu farklı olabilir, ancak yukarıda bahsettiğim psycopg2 için kurulum tarifi aynı kalır. Umarım yardımcı olmuştur.
Ali Raza Bhayani

30

sudo apt-get install libpq-dev Ubuntu 15.4'te benim için çalışıyor


Daha yeni Ubuntu kullanıyorsanız, yine de yukarıda belirtilen kurulum talimatlarını kullanın. Bkz. Pg_config
palik

23

Linux'ta Mint sudo apt-get install libpq-devbenim için çalıştı.


21

Önceden derlenmiş ikili dosyaları pipveya ile herhangi bir platforma kurabilirsiniz conda:

python -m pip install psycopg2-binary

veya

conda install psycopg2

Psycopg2-binary pypi sayfasının üretim sırasında kaynaktan üretilmesini tavsiye ettiğini lütfen unutmayın :

İkili paket geliştirme ve test için pratik bir seçimdir, ancak üretimde kaynaklardan inşa edilen paketi kullanmanız önerilir.

Kaynaklardan oluşturulan paketi kullanmak için kullanın python -m pip install psycopg2. Bu süreç birkaç bağımlılık ( dokümantasyon ) gerektirecektir (benimkini vurgulayın):

  • AC derleyici .
  • Python başlık dosyaları . Genellikle python-dev gibi bir pakete kurulurlar. . Hata gibi bir mesaj: Python.h: Böyle bir dosya veya dizin Python başlıklarının eksik olduğunun bir göstergesi değildir.
  • Libpq başlık dosyaları . Genellikle libpq-dev gibi bir pakete kurulurlar . Bir hata alırsanız: libpq-fe.h: Böyle bir dosya veya dizin yok.
  • Pg_config programı : genellikle olarak yüklenir libpq-dev paketine ama bazen bir YOL dizinde değil. PATH'ye sahip olmak kurulumu büyük ölçüde kolaylaştırır, bu yüzden pg_config --version komutunu çalıştırmayı deneyin: bir hata veya beklenmedik bir sürüm numarası döndürürse, doğru libpq sürümüyle birlikte gönderilen pg_config dosyasını içeren dizini bulun (genellikle / usr / lib / postgresql / XY / bin /) kullanın ve $ export PATH=/usr/lib/postgresql/X.Y/bin/:$PATH PATH'e ekleyin: Normal kullanımı için değil, psycopg2'yi derlemek için sadece pg_config dosyasına ihtiyacınız vardır.

Ubuntu'da, önce libpq-dev kütüphanesini kurmam ve ardından pip install komutunu tekrar çalıştırmam gerekiyordu:apt install libpq-dev
Benjamin

20

GÜNCELLEME /etc/yum.repos.d/CentOS-Base.repo, [temel] ve [güncellemeler] bölümleri
EKLE hariç = 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

OS X çalıştıranlar için bu çözüm benim için çalıştı:

1) Postgres.app uygulamasını yükleyin:

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

2) Ardından Terminal'i açın ve {{version}} yazdığı yeri Postgres sürüm numarası ile değiştirerek bu komutu çalıştırın:

dışa aktarma PATH = $ PATH: /Applications/Postgres.app/Contents/Versions / {{version}} / bin

Örneğin

dışa aktarma PATH = $ PATH: /Applications/Postgres.app/Contents/Versions/9.4/bin


Veya en son sürüme symlinksudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config
Subin Sebastian

17

PATH klasörüne eklemeyi deneyin:

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

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

@pylover, Postgres bin dizininiz için doğru yolu kullanmanız gerekir. Bunun /usr/pgsql-x.x/bin/doğru olduğundan emin misin ?
Marboni

Ayrıca tüm önemli pg_dosyaların yaşadığı klasörü eklemek de yeterli olacaktır . Postgres.app için Mac OS X'te bu yol var /Applications/Postgres.app/Contents/Versions/9.3/bin. Yeni bir sürüm yayınlandıysa PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin lütfen sürümünüzü * güncelleyin !
Tim Daubenschütz

Bu benim için OS X El Capitan'da çalıştı: PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/
David Hariri

16

Ali'nin çözümü benim için çalıştı ama bin klasör konumunu bulmakta sorun yaşıyordum. Mac OS X'te yolu bulmanın hızlı bir yolu psql'yi açmaktır (üst menü çubuğunda hızlı bir bağlantı vardır). Bu ayrı bir terminal penceresi açar ve ikinci satırda Postgres kurulumunuzun yolu şöyle görünür:

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

Pg_config dosyanız o bin klasöründedir. Bu nedenle, psycopg2'yi yüklemeden önce pg_config dosyasının yolunu ayarlayın:

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

veya daha yeni bir sürüm için:

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

Ardından psycopg2'yi yükleyin.


1
Daha yeni dokümanlar şu yolu kullanır:/Applications/Postgres.app/Contents/Versions/9.3/bin
jpimentel

Hareket ediyor gibi görünüyor. find /usr/local -name 'pg_config'
Praxeolitic

11

Psycopg2'yi kurmadan önce pipinizi yükseltmeniz gerekir. Bu komutu kullan

pip install --upgrade pip

Daha ayrıntılı bir cevap çoğu durumda yardımcı olabilir.
bkausbk

11

Bunu, sağlanan tüm çözümlere rağmen bu sorunu çözemeyen bir sonraki talihsiz ruh için burada bırakacağım. Basitçe kullanınsudo pip3 install psycopg2-binary


Bu benim için işe yaramadı. Sadece brew install postgresqldüzelttim.
tsando

Benim için gerekebilir pip install psycopg2-binary: pip -> python2, pip3 -> python3. Ama çalıştığınız sürece, birçok çözümden biriydi!
DuDoff

9

Cent OS 7'deki sorunu şu şekilde çözdüm:

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

PostgreSql sürümünüzün yukarıdaki doğru sürümle eşleştiğinden emin olun.


9

Mac OS X ve Postgres Uygulamasını kullanıyorsanız ( http://postgresapp.com/ ):

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

Bu komutta Postgres sürümünü belirtmenize gerek yoktur. Her zaman en sonuncusu gösterilecektir.

ve yap

pip install psycopg2

Not: Değişiklikler yansımıyorsa, Terminal / Komut istemini yeniden başlatmanız gerekebilir

Kaynak




8

MacOS'ta, en basit çözüm Postgres paketinin altındaki doğru ikiliyi işaretlemek olacaktır.

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

Bu oldukça zararsızdır ve tüm uygulamalar gerektiğinde sistemi tümüyle kullanabilecektir.


Benim için çalışır, ama sudo olsa gerek yoktu. Teşekkür ederim!
John Ottenlips

Gerçekten benim için çalışıyor!
Hadnazzar

5

sudo yum yüklemek postgresql-devel (centos6X)

pip install psycopg2 == 2.5.2


5

OS X tamlığı için: PostgreSQL'i MacPorts'tan yüklerseniz, pg_config /opt/local/lib/postgresql94/bin/pg_config .

MacPorts'u yüklediğinizde, PATH'nize zaten eklenmiştir /opt/local/bin.

Yani, bu sorunu çözecektir: $ sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config

Artık sorunsuz pip install psycopg2çalışabilecektir pg_config.


4

MacOS Catalina'ta postgres uygulamasınızsh da yükleyen kabuğu kullananlara :

~/.zshrcDosyanızı açın ve aşağıdaki satırı ekleyin :

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

Ardından tüm terminallerinizi kapatın, tekrar açın ve sorununuzu çözdünüz.

Terminallerinizi kapatmak istemiyorsanız, source ~/.zshrcçalışmaya devam etmek istediğiniz terminali girin .


Bu benim için Macos ve zshkabuk üzerinde çalıştı !
Aditya Rao

4

Mac kullanıcıları için yol değişkeninizi PostgreSQL'i içerecek şekilde genişletin export PATH=$PATH:/Library/PostgreSQL/12/bin.


3

Psycopg2'yi bu şekilde kurmayı başardım

$ 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

Aynı "sorunu" yaşadığınıza eminim, bu yüzden size son derece kolay bir çözüm sunacağım ...

Sizin durumunuzda, $ PATH'a (veya bir komut parametresi olarak) eklemeniz gereken gerçek yol:

/usr/pgsql-9.1/bin/pg_config

değil

/usr/pgsql-9.1/bin

Örneğin, daha sonra python setup.py betiğini çalıştırırsanız şu şekilde çalıştırırsınız:

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

Muhtemelen çok geç, ama yine de en kolay çözüm.

SON DÜZENLEME:

Daha fazla test altında, başlangıçta formda pg_config yolunu eklerseniz

/usr/pgsql-9.1/bin

(/ pg_config sonra ..... / bin olmadan) ve pip install komutunu çalıştırarak çalışacaktır.

Ancak, daha sonra python setup.py çalıştırma endikasyonunu izlemeye karar verirseniz, yolu / pg_config ile ..... / bin'den sonra belirtmeniz gerekir;

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

Adil bir bit kullandığım PATH'e pgsql / bin dizinini eklemenin bir alternatifi, symlink /usr/pgsql-9.6/bin/pg_config(veya sisteminizde ne denirse ) için /usr/bin/pg_config- zaten sahip olduğunuz PATH'de kullanılabilir.
Ralph Bolton

2

CentOS / RedHat için /etc/alternatives/pgsql-pg_configkırık olmayan bir sembolik bağlantı olduğundan emin olun

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.