executable pg_config tidak ditemukan


771

Saya kesulitan menginstal psycopg2. Saya mendapatkan kesalahan berikut ketika saya mencoba untuk 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

Tapi masalahnya ada pg_configdi tangan saya PATH; ini berjalan tanpa masalah:

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

Saya mencoba menambahkan path pg_config ke setup.cfgfile dan membangunnya menggunakan file sumber yang saya unduh dari situs web mereka ( http://initd.org/psycopg/ ) dan saya mendapatkan pesan kesalahan berikut!

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

Tapi itu sebenarnya ADA !!!

Saya bingung dengan kesalahan ini. Apakah ada yang bisa membantu?

By the way, saya sudosemua perintah. Saya juga di RHEL 5.5.


8
Ketika Anda menjalankan perintah sebagai sudo, $PATHdiubah. Bisakah Anda memeriksa ulang $ PATH Anda sebagai root?
Hugo Tavares

1
Dalam kasus saya, saya berlari ln -s /usr/pgsql-9.1/bin/pg_config /usr/sbin/pg_configdan semuanya baik-baik saja!
CK.Nguyen

Terima kasih @ CK.Nguyen tip Anda benar-benar bekerja untuk saya.
pratibha

Jawaban:


766

pg_configada di postgresql-devel( libpq-devdi Debian / Ubuntu, libpq-develdi Centos / Cygwin / Babun.)


66
Dipecahkan setelah menginstal libpq-devdi ubuntu jernih (10,04). Terima kasih sebelumnya.
pylover

22
pg_configdari postgress.app berada di /Applications/Postgres.app/Contents/Versions/<your version>/bin(Mac OS X)
Tim Daubenschütz

17
Ada libpqxx-develdi fedora.
robsn

55
sudo apt-get install libpq-devbekerja untuk saya di Ubuntu
Bill Cheatham

48
di Alpine Linux: apk tambahkan postgresql-dev
RJ

385

Di Mac OS X, saya menyelesaikannya menggunakan manajer paket homebrew

brew install postgresql

29
Luar biasa! Ini memecahkan masalah bagi saya, tetapi pemula harus sadar bahwa Anda perlu menginstal manajer paket Homebrew terlebih dahulu agar brewperintah itu berfungsi.
seane

Bekerja untuk saya juga, meskipun saya menginstal brew setelah pgadmin menginstal.
Khanal

8
Bukankah itu menginstal seluruh basis data?
zmbq

3
Saya perlu ekstrabrew link postgresql
vincentlcy

1
Untuk menambahkan komentar @ seane, gunakan langkah - langkah ini untuk menginstal homebrew.
Bruce Wayne

236

Sudahkah Anda menginstal python-dev? Jika sudah, coba juga installibpq-dev

sudo apt-get install libpq-dev python-dev

Dari artikel: Cara menginstal psycopg2 di bawah virtualenv


Di komputer saya, saya hanya menginstal klien Postgresql, Jadi Anda harus menginstal libpq-dev dan python-dev.
bnPYSse

2
Diragukan bahwa python-dev diperlukan.
juanitogan

itu membantu saya. Terima kasih
Arun

4
python3-dev dibutuhkan. Tanpa itu saya dapatkanPython.h: No such file or directory
krubo

1
satu lagi ketergantungan yang diperlukan untuk ini adalahapt-get install -y gcc
Anum Sheraz

75

Juga di OSX. Menginstal Postgress.app dari http://postgresapp.com/ tetapi memiliki masalah yang sama.

Saya menemukan konten pg_configaplikasi itu dan menambahkan dir ke $PATH.

Itu di /Applications/Postgres.app/Contents/Versions/latest/bin. Jadi ini bekerja: export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH".


3
@GianlucaLodigiani Anda juga dapat melakukan ini jika Anda tidak ingin me-restart konsolPATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH" pip install psycopg2
Bernardo Duarte

45

Pada alpine, perpustakaan yang berisi pg_configadalah postgresql-dev. Untuk menginstal, jalankan:

apk add postgresql-dev

38

Inilah yang bekerja untuk saya di CentOS, instal dulu:

sudo yum install postgresql postgresql-devel python-devel

Di Ubuntu cukup gunakan paket apt-get equivilent.

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

Dan sekarang sertakan path ke dir biner postgresql Anda dengan instal pip, ini akan berfungsi untuk Linux berbasis Debain atau RHEL:

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

Pastikan untuk memasukkan jalur yang benar. Itu saja :)


1
Di Ubuntu itu sudo apt-get install postgresql postgresql-dev python-dev, dan ini berhasil untuk saya.
modulitos

2
juga bekerja di Amazon Linux AMI pada Desember 2016. Juga pastikan gccsudah terinstal dan python3-devel.
villasv

Terima kasih!!! Itu bekerja di Fedora 32 Workstation juga!
Marcelo Gazzola


34

Anda harus menambahkan persyaratan python yang digunakan dalam Postgres di Ubuntu. Lari:

sudo apt-get install libpq-dev python-dev

32

Singkatnya, saya juga menghadapi masalah yang sama persis. Setelah membaca banyak posting stackoverflow dan blog online, solusi terakhir yang bekerja untuk saya adalah ini:

1) PostgreSQL (pengembangan atau versi stabil apa pun) harus diinstal sebelum menginstal psycopg2.

2) File pg_config (file ini biasanya berada di folder bin dari folder instalasi PostgreSQL) PATH harus secara eksplisit diatur sebelum menginstal psycopg2. Dalam kasus saya, PATH instalasi untuk PostgreSQL adalah:

/opt/local/lib/postgresql91/

jadi untuk mengatur PATH file pg_config secara eksplisit, saya memasukkan perintah berikut di terminal saya:

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

Perintah ini memastikan bahwa ketika Anda mencoba memasang install psycopg2, kali ini akan menemukan PATH ke pg_config secara otomatis.

Saya juga telah memposting kesalahan lengkap dengan jejak dan solusinya di blog saya yang mungkin ingin Anda rujuk. Ini untuk Mac OS X tetapi masalah PATH pg_config bersifat generik dan juga berlaku untuk Linux.


6
bagi saya di OS X jalan tampak seperti iniPATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
andilabs

@andi Ya, jalur instalasi Postgres mungkin berbeda tetapi resep instalasi untuk psycopg2 yang saya sebutkan di atas tetap sama. Semoga ini bisa membantu.
Ali Raza Bhayani

30

sudo apt-get install libpq-dev bekerja untuk saya di Ubuntu 15.4


Jika Anda menggunakan Ubuntu yang lebih baru, masih menggunakan instruksi instalasi yang disebutkan di atas. Lihat pg_config
palik

23

Di Linux Mint sudo apt-get install libpq-devbekerja untuk saya.


21

Anda dapat menginstal binari yang telah dikompilasi sebelumnya pada platform apa pun dengan pipatau conda:

python -m pip install psycopg2-binary

atau

conda install psycopg2

Harap diperhatikan bahwa halaman pypi psycopg2-binary merekomendasikan bangunan dari sumber dalam produksi:

Paket biner adalah pilihan praktis untuk pengembangan dan pengujian tetapi dalam produksi disarankan untuk menggunakan paket yang dibangun dari sumber

Untuk menggunakan paket yang dibangun dari sumber, gunakan python -m pip install psycopg2. Proses itu akan memerlukan beberapa dependensi ( dokumentasi ) (penekanan tambang):

  • Kompiler AC .
  • The Python file header . Mereka biasanya diinstal dalam paket seperti python-dev . Pesan seperti kesalahan: Python.h: Tidak ada file atau direktori tersebut merupakan indikasi bahwa header Python hilang.
  • The file libpq sundulan . Mereka biasanya diinstal dalam paket seperti libpq-dev . Jika Anda mendapatkan kesalahan: libpq-fe.h: Tidak ada file atau direktori yang Anda lewatkan.
  • Program pg_config : biasanya diinstal oleh paket libpq-dev tetapi kadang-kadang tidak ada dalam direktori PATH. Setelah itu di PATH sangat merampingkan instalasi, jadi coba jalankan pg_config --versi: jika ia mengembalikan kesalahan atau nomor versi yang tidak terduga kemudian cari direktori yang berisi pg_config yang dikirimkan dengan versi libpq yang tepat (biasanya / usr / lib / postgresql / XY / bin /) dan tambahkan ke PATH: $ export PATH=/usr/lib/postgresql/X.Y/bin/:$PATH Anda hanya perlu pg_config untuk mengkompilasi psycopg2, bukan untuk penggunaan regulernya.

Di Ubuntu, saya perlu menginstal perpustakaan libpq-dev terlebih dahulu dan kemudian jalankan lagi perintah install pip:apt install libpq-dev
Benjamin

20

UPDATE /etc/yum.repos.d/CentOS-Base.repo, bagian [basis] dan [pembaruan]
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

Bagi mereka yang menjalankan OS X, solusi ini bekerja untuk saya:

1) Instal Postgres.app:

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

2) Kemudian buka Terminal dan jalankan perintah ini, ganti di mana dikatakan {{version}} dengan nomor versi Postgres:

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

misalnya

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


Atau simlink ke versi terbarusudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config
Subin Sebastian

17

Coba tambahkan ke PATH:

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

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

@pylover, Anda perlu menggunakan jalur yang benar ke direktori Postgres bin Anda. Apakah Anda yakin itu /usr/pgsql-x.x/bin/benar?
Marboni

Itu juga akan cukup hanya dengan menambahkan folder tempat semua pg_file penting tinggal. Untuk postgres.app jalur ini di Mac OS X adalah /Applications/Postgres.app/Contents/Versions/9.3/bin. PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin Perbarui versi Anda * jika versi baru dirilis!
Tim Daubenschütz

Ini bekerja untuk saya di OS X El Capitan:PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/
David Hariri

16

Solusi Ali bekerja untuk saya tetapi saya kesulitan menemukan lokasi folder bin. Cara cepat untuk menemukan jalur di Mac OS X adalah membuka psql (ada tautan cepat di bilah menu atas). Ini akan membuka jendela terminal yang terpisah dan pada baris kedua jalur instalasi Postgres Anda akan muncul seperti ini:

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

File pg_config Anda ada di folder bin itu. Karena itu, sebelum menginstal psycopg2 setel path file pg_config:

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

atau untuk versi yang lebih baru:

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

Kemudian instal psycopg2.


1
Dokumen yang lebih baru menggunakan jalur berikut:/Applications/Postgres.app/Contents/Versions/9.3/bin
jpimentel

Tampaknya bergerak. find /usr/local -name 'pg_config'
Praxeolitic

11

Anda perlu memutakhirkan pip Anda sebelum menginstal psycopg2. Gunakan perintah ini

pip install --upgrade pip

Jawaban yang lebih terperinci dapat membantu dalam banyak kasus.
bkausbk

11

Saya akan meninggalkan ini di sini untuk jiwa malang berikutnya yang tidak dapat menyelesaikan masalah ini terlepas dari semua solusi yang disediakan. Cukup gunakansudo pip3 install psycopg2-binary


Ini tidak berhasil untuk saya. Hanya brew install postgresqlmemperbaikinya.
tsando

Anda mungkin harus melakukannya pip install psycopg2-binaryuntuk saya: pip -> python2, pip3 -> python3. Tetapi selama Anda berhasil, itu adalah salah satu dari banyak solusi!
DuDoff

9

Baru saja menyelesaikan masalah di Cent OS 7 dengan:

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

pastikan versi PostgreSql Anda cocok dengan versi di atas.


9

Di Mac OS X dan Jika Anda menggunakan Postgres App ( http://postgresapp.com/ ):

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

Tidak perlu menentukan versi Postgres dalam perintah ini. Itu akan selalu menunjuk ke yang terbaru.

dan lakukan

pip install psycopg2

PS: Jika Perubahan tidak mencerminkan Anda mungkin perlu me-restart Terminal / Command prompt

Sumber




8

Pada MacOS, solusi paling sederhana adalah symlink biner yang benar, yang berada di bawah paket Postgres.

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

Ini cukup tidak berbahaya, dan semua aplikasi akan dapat menggunakannya secara luas, jika diperlukan.


Bekerja untuk saya, tidak harus sudo. Terima kasih!
John Ottenlips

Benar-benar bekerja untuk saya!
Hadnazzar


5

Di sini, untuk kelengkapan OS X: jika Anda menginstal PostgreSQL dari MacPorts, pg_config akan berada di /opt/local/lib/postgresql94/bin/pg_config .

Ketika Anda menginstal MacPorts, itu sudah ditambahkan /opt/local/bin ke PATH Anda.

Jadi, ini akan memperbaiki masalah: $ sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config

Sekarang pip install psycopg2akan dapat berjalan pg_configtanpa masalah.


4

Untuk mereka yang menggunakan MacOS Catalina menggunakan zshshell yang juga telah menginstal aplikasi postgres :

Buka ~/.zshrcfile Anda , dan tambahkan baris berikut:

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

Kemudian tutup semua terminal Anda, buka kembali, dan Anda akan menyelesaikan masalah Anda.

Jika Anda tidak ingin menutup terminal Anda, cukup masukkan source ~/.zshrcterminal apa pun yang ingin Anda teruskan bekerja.


Ini bekerja untuk saya di Macos and zshshell!
Aditya Rao

4

Untuk pengguna mac, perluas variabel path Anda untuk memasukkan PostgreSQL seperti ini export PATH=$PATH:/Library/PostgreSQL/12/bin.


3

Ini adalah bagaimana saya berhasil menginstal 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

Saya cukup yakin Anda pernah mengalami "masalah" yang sama dengan yang saya lakukan, karena itu saya akan menawarkan solusi yang sangat mudah ...

Dalam kasus Anda, jalur aktual yang perlu Anda tambahkan ke $ PATH (atau sebagai param perintah) adalah:

/usr/pgsql-9.1/bin/pg_config

tidak

/usr/pgsql-9.1/bin

Misalnya jika Anda menjalankan skrip setup.py python setelah itu, Anda akan menjalankannya seperti ini:

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

Mungkin sudah terlambat, tetapi masih merupakan solusi termudah.

EDIT KEMUDIAN:

Di bawah pengujian lebih lanjut saya menemukan bahwa jika Anda awalnya menambahkan path ke pg_config dalam formulir

/usr/pgsql-9.1/bin

(tanpa / pg_config setelah ..... / bin) dan jalankan perintah install pip, itu akan berfungsi.

Namun, jika Anda kemudian memutuskan untuk mengikuti indikasi untuk menjalankan python setup.py, Anda harus menentukan path dengan / pg_config setelah ..... / bin, yaitu

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

Alternatif untuk menambahkan direktori pgsql / bin ke PATH yang saya gunakan sedikit adil adalah dengan symlink /usr/pgsql-9.6/bin/pg_config(atau apa pun namanya pada sistem Anda) ke /usr/bin/pg_config- dengan cara itu tersedia di PATH yang sudah Anda miliki.
Ralph Bolton

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.