PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Mengapa saya tidak bisa menginstal psycopg2? (Python 2.6.4, PostgreSQL 8.4, OS X 10.6.3)

(Lihat suntingan di bawah untuk pertanyaan Anda yang diperbarui )

Anda tidak memiliki kompiler "gcc4.0" yang dapat dieksekusi di mesin Anda, atau versi yang tepat, atau diinstal di lokasi yang tidak dapat ditemukan/digunakan python. XCode/Developer Tools (yang menyertakan GCC ) harus ada di DVD instalasi OSX asli Anda.

Karena Anda cukup rendah hati untuk menyebut diri Anda seorang pemula, inilah nugget kebijaksanaan ... Mengatasi kesalahan ini benar-benar tidak ada hubungannya dengan pengembangan web back-end, karena ini adalah lingkungan pengembangan lokal Anda (mesin Anda dan semua perangkat lunak sebagai itu dikonfigurasi dan diinstal) itulah masalahnya. Tip terbaik yang saya miliki untuk menguraikan gobbledegook seperti ini adalah memulai Googling kata kunci untuk hal-hal yang belum pernah Anda dengar sebelumnya. Jika saya berada di posisi Anda, pesan kesalahan ini berteriak kepada saya untuk "cari tahu apa itu gcc4.0. Kemudian, ketika saya tahu apa itu dan apa fungsinya, dan mengapa python membutuhkannya, maka saya mencari tahu mengapa python tidak dapat menemukannya di komputer saya, dan kemudian saya melakukan sesuatu untuk itu." Kepuasan dalam menyelesaikan masalah seperti ini tidak terjadi pada semua orang, itu sudah pasti.

Jawaban untuk semua pertanyaan itu adalah ini:psycopg2 adalah ekstensi python yang ditulis dalam bahasa C. Banyak ekstensi untuk python ditulis dalam C, bukan python, karena C jauh lebih dioptimalkan daripada python. Itulah yang sebenarnya ditulis oleh juru bahasa python itu sendiri. Kode bahasa C harus dikompilasi sebelum dapat digunakan (tidak seperti kode python, yang ditafsirkan ) dan dalam hal ini, kompiler yang Anda butuhkan adalah gcc4.0. Sekarang, mungkin jika Anda menggunakan Windows atau Linux, versi kompilasi dari psycopg2 mungkin sudah tersedia, dan Anda tidak perlu menginstal GCC, karena Anda tidak perlu mengompilasinya untuk menggunakannya (itu akan dikompilasi untuk Anda). Namun, sepertinya Anda harus mengompilasinya sendiri di OS X, dan untuk melakukannya, Anda memerlukan program "gcc4.0" agar tersedia di PATH sistem sehingga skrip pengaturan yang Anda coba jalankan dapat ditemukan dan menggunakannya. Di OS X, Anda bisa mendapatkannya dari DVD instalasi asli yang dikirimkan bersama komputer Anda. Masukkan ke dalam drive dan temukan program penginstalan Alat Pengembang. Setelah Anda menginstalnya, Anda akan dapat memeriksa apakah kompiler GCC 4.0 diinstal dengan mencoba menjalankan perintah "gcc4.0" di jendela konsol mana pun dan melihat apakah itu diinstal dan di jalur Anda.

Edit untuk pembaruan Anda

Sepertinya Anda sekarang telah menginstal kompiler GCC 4.0 dengan baik! Kerja bagus. Saat Anda melihat ini:

>gcc4.0
i686-apple-darwin10-gcc-4.0.1: no input files

Output itu adalah kompiler yang memberi tahu Anda versi persisnya, dan kemudian memberi tahu Anda bahwa Anda tidak memberikan parameter, jadi, itu tidak akan melakukan apa pun untuk Anda. Tidak apa-apa, karena skrip penyiapan psycopg2 Anda yang akan memanggilnya, bukan Anda secara langsung.

Selanjutnya, sepertinya psycopg2 mengharapkan Anda juga harus menginstal pustaka pengembangan server PostgreSQL. Karena saya melihat Anda sekarang menggunakan MacPorts, Anda seharusnya dapat menginstal pustaka ini dengan mudah dengan perintah ini:

sudo port install postgresql-server-devel

Itu akan membuat Anda kehilangan pg_config dapat dieksekusi yang dicari oleh penyiapan.

Terus beri tahu kami tentang kemajuan Anda!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah kita mendefinisikan fungsi GROUP_CONCAT di PostgreSQL?

  2. Masalah kunci asing dengan permata Apartemen

  3. Bagaimana membandingkan 2 nilai baris berturut-turut dalam objek hasil menggunakan python

  4. (Python) instalasi psycopg2

  5. SQL:Cara menggabungkan duplikat case-insensitive