Saya mencoba menginstal postgres untuk tutorial, tetapi pip
memberi saya kesalahan:
pip install psycopg
Sedikit kesalahan yang saya dapatkan:
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'.
Di mana pg_config
di virtualenv saya? Bagaimana cara mengkonfigurasinya? Saya menggunakan virtualenv karena saya tidak ingin instalasi postgres di seluruh sistem.
Jawaban:
Di Mac, jika Anda menggunakan Postgres.app , file pg_config ada di
/Applications/Postgres.app/Contents/Versions/<current_version>/bin
direktori Anda . Itu perlu ditambahkan ke jalur sistem Anda untuk memperbaiki kesalahan ini, seperti ini:export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/<current_version>/bin
Jadi misalnya, jika versi Postgres.app saat ini adalah 9.5, baris ekspor ini akan menjadi:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin
Dengan versi Postgres.app yang lebih baru (> 9.5?), Anda cukup menambahkan "terbaru" sebagai pengganti nomor versi, seperti:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
sumber
9.4
.bash_profile
jika menggunakan bash Terminal standar. JIKA menggunakanzsh
tambahkan baris ini ke.zshrc
file. Semua ini akan Anda temukan di direktori home Anda. (hanyals -la
)<current_version>
denganlatest
poin mana ke versi Postgres terbaru yang diinstal. Folder saya terlihat seperti:ls /Applications/Postgres.app/Contents/Versions/
dan memberi9.5/ latest/
Di Mac, solusinya adalah menginstal
postgresql
:brew install postgresql
Di CentOS, solusinya adalah menginstal
postgresql-devel
:sudo yum install postgresql-devel
pg_config
ada dalampostgresql-devel
paketsumber
Saya sangat setuju dengan john hight bahwa sebagian besar jawaban yang diposting benar-benar offtopic dengan asumsi OP benar-benar membutuhkan penggunaan virtualenv .
Bagi saya jawabannya adalah menjalankan perintah berikut pada prompt sambil mengaktifkan virtualenv:
export PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"
(perhatikan bahwa bagian 9.4 adalah singkatan dari versi dan dapat bervariasi)
atau jika Anda ingin menggunakan Postgres versi terbaru :
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
lalu:
pip install psycopg2
berjalan dengan sukses dengan asumsi Anda telah menginstal postgres. Dan jika tidak, maka ingatlah bahwa solusi terbaik dan yang direkomendasikan adalah menggunakan: Postgres.app
sumber
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
jika Anda ingin menggunakan versi terinstal terbaru dari PostgresJangan lupa bahwa variabel $ PATH Anda di lingkungan virtual! = Variabel $ PATH global Anda. Anda dapat mengonfirmasi ini dengan 'echo $ PATH' di virtualenv Anda dan juga di shell baru. Jadi, kecuali Anda ingin menginstal PostgreSQL sebagai contoh unik di dalam lingkungan virtual Anda (bukan hal yang layak dilakukan, imo), Anda harus memodifikasi variabel $ PATH di dalam virtualenv untuk memasukkan jalur ke instalasi global Anda (yang akan memecahkan kesalahan pg_config Anda yang hilang).
Berikut langkah-langkahnya:
1.) Di shell baru, ketik 'which pg_config'. Ini akan mengembalikan jalan. Salin. Dalam kasus saya, jalurnya terlihat seperti ini: /Applications/Postgres.app/Contents/Versions/9.3/bin
2.) Kembali ke shell virtualenv Anda, ketik 'export PATH = / your-path-to-pg_config: $ PATH'
3.) Kemudian, masih dalam virtualenv, 'pip install psycopg2'
Jika semua berjalan sesuai rencana, ini akan menginstal psycopg2 dalam lingkungan virtual, tetapi penginstalan akan merujuk ke penginstalan Global PostgreSQL Anda. Dalam kasus saya, instalasi Global ini diinstal melalui Postgres.App, karenanya jalurnya. Saya lebih suka metode ini bekerja dengan psycopg2 karena itu berarti saya dapat menggunakan database dengan mudah dalam virtualenv apa pun daripada hanya dalam lingkungan virtual yang ditentukan.
Semoga ini bisa membantu siapa saja yang datang ke sini. Untuk Google Juice, berikut ini bahasa kesalahan eksplisit (dan tidak jelas) yang dikembalikan ketika Anda mengalami masalah ini:
Perintah python setup.py egg_info gagal dengan kode kesalahan 1
sumber
Inilah cara saya dapat menyelesaikan masalah ini di Mac saya (OSX 10.9):
brew update brew install --force ossp-uuid brew install postgresql pip install psycopg
Saya mendapat kesalahan CLANG ketika saya mencoba
pip install psycopg
(masalah LLVM 5.1 ), jadi saya harus menginstal psycopg dengan perintah ini sebagai gantinya:ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg
Ini mirip dengan solusi Mingyu , tetapi ada cukup banyak perbedaan yang menurut saya layak untuk dibagikan.
sumber
Kesalahan ini terjadi ketika alat pembangunan tidak dapat menemukan perpustakaan Postgresql.
Seringkali diperlukan untuk menginstruksikan psycopg2 bagaimana menemukan biner pg_config, Anda dapat:
tambahkan jalur ke pg_config di jalur shell Anda (/ usr / local / pgsql / bin /)
atau edit file setup.cfg di folder sumber psycopg2 dan berikan path lengkap ke pg_config pada baris yang dimulai dengan pg_config =
locate pg_config
untuk mencari tahu di mana ia berada, atau cukup ketikwhich pg_config
dan itu akan memberi tahu Anda jalurnya.Lebih jarang kesalahan datang karena tidak menginstal postgresql di sistem Anda. Jika demikian, unduh dan buat postgres, atau unduh biner psycopg2 pra-bangun untuk OS X.
sumber
Untuk
OS X El Capitan (10.11.6)
+brew
+virtualenv
+PostgreSQL 9.5
:Setelah menginstal
PostgreSQL 9.5
:brew install postgresql@9.5
Kemudian, buka terminal Anda dan jalankan:
export PATH=$PATH:/usr/local/opt/postgresql\@9.5/bin/ pip install psycopg2
sumber
Anda harus mengonfigurasi jalur postgresql:
export PATH=$PATH:/Library/PostgreSQL/11/bin
setelah itu, Anda harus memasang persyaratan:
pip3 install -r requirements
sumber
virtualenv adalah untuk paket python. Saya tidak berpikir Anda akan dapat memuat postgres di dalam virtualenv. Pesan kesalahan yang Anda lihat mungkin karena Anda belum menginstal postgres. Skrip instalasi psycopg2 sedang mencari file postgres (dalam hal ini pg_config) dan tidak menemukannya karena tidak diinstal. postgres tidak dapat diinstal menggunakan pip atau virtualenv.
sumber
Pada Windows saya menginstal postgres secara manual dari http://www.enterprisedb.com/products-services-training/pgdownload#windows . Setelah itu perintah yang sama berfungsi.
sumber
Selain jawaban yang diberikan oleh @bkev dan @andi, menurut dokumentasi di Postgres.app, Anda harus menambahkan yang berikut ini ke bash_profile Anda di Mac:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
Perhatikan bahwa, tidak ada nomor versi hard-code. Saya ingin menambahkan ini sebagai komentar untuk jawaban di atas, tetapi saya tidak memiliki cukup perwakilan untuk ini.
sumber
Jika Anda menggunakan postgresql 9.4, file tersebut terletak di
Nama paketnya adalah
postgresql94-9.4.9-1PGDG.rhel6.x86_64
untuk menambahkan pg_config ke PATH Anda, lakukan hal berikut
PATH=$PATH:/usr/pgsql-9.4/bin/
sumber
Jika Anda tidak harus menggunakan
psycopg
driver secara khusus, beralihlah kepg8000
driver. Ini murni Python dan tidak terlalu rewel.sumber
Di Ubuntu saya hanya membutuhkan paket postgres dev:
sudo apt-get install postgresql-server-dev-all
sumber
Milik saya terletak di /Library/PostgreSQL/9.4/bin
export PATH=$PATH:/Library/PostgreSQL/9.4/bin
sumber