Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menginstal MySQLdb (perpustakaan akses data Python ke MySQL) di Mac OS X?

Pembaruan bagi mereka yang menggunakan Python3: Anda cukup menggunakan conda install mysqlclient untuk menginstal perpustakaan yang diperlukan untuk menggunakan MySQLdb seperti yang ada saat ini. Pertanyaan SO berikut adalah petunjuk yang berguna:Python 3 ImportError:Tidak ada modul bernama 'ConfigParser' . Menginstal mysqlclient akan menginstal mysqlclient, mysql-connector, dan llvmdev (setidaknya, ini menginstal 3 perpustakaan ini di mesin saya).

Berikut adalah kisah pengalaman bertele-tele saya dengan masalah ini. Akan senang melihatnya diedit atau digeneralisasi jika Anda memiliki pengalaman yang lebih baik tentang masalah ini... terapkan sedikit keajaiban itu.

Catatan:Komentar di paragraf berikutnya diterapkan pada Snow Leopard, tetapi tidak pada Lion, yang tampaknya memerlukan MySQL 64-bit

Pertama, penulis (masih?) MySQLdb mengatakan disini bahwa salah satu masalah yang paling merusak adalah bahwa OS X datang terinstal dengan versi 32 bit dari Python, tetapi kebanyakan joes rata-rata (termasuk saya sendiri) mungkin melompat untuk menginstal versi 64 bit dari MySQL. Langkah buruk... hapus versi 64 bit jika Anda telah menginstalnya (petunjuk tentang tugas fiddly ini tersedia di SO di sini ), lalu unduh dan instal versi 32 bit (paket di sini )

Ada banyak langkah-demi-langkah tentang cara membangun dan menginstal perpustakaan MySQLdb. Mereka sering memiliki perbedaan yang halus. Ini tampaknya yang paling populer bagi saya, dan memberikan solusi yang berfungsi. Saya telah mereproduksinya dengan beberapa pengeditan di bawah

Langkah 0: Sebelum saya mulai, saya berasumsi bahwa Anda memiliki MySQL, Python, dan GCC diinstal di mac.

Langkah 1: Unduh adaptor MySQL untuk Python terbaru dari SourceForge.

Langkah 2: Ekstrak paket yang Anda unduh:

tar xzvf MySQL-python-1.2.2.tar.gz

Langkah 3: Di dalam folder, bersihkan paket:

sudo python setup.py clean

PASANGAN LANGKAH TAMBAHAN, (dari komentar ini )

Langkah 3b: Hapus semua yang ada di direktori MySQL-python-1.2.2/build/* Anda -- jangan percaya "python setup.py clean" untuk melakukannya untuk Anda

Langkah 3c: Hapus telur di bawah Users/$USER/.python-eggs

Langkah 4: Awalnya diperlukan pengeditan _mysql.c, tetapi sekarang TIDAK PERLU LAGI. Komunitas MySQLdb tampaknya telah memperbaiki bug ini sekarang.

Langkah 5: Buat tautan simbolis di bawah lib untuk menunjuk ke sub-direktori bernama mysql. Ini adalah tempat yang dicari selama kompilasi.

sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql

Langkah 6: Edit setup_posix.py dan ubah yang berikut

mysql_config.path ="mysql_config"

untuk

mysql_config.path ="/usr/local/mysql/bin/mysql_config"

Langkah 7: Di direktori yang sama, buat kembali paket Anda (abaikan peringatan yang menyertainya)

sudo python setup.py build

Langkah 8: Instal paket dan selesai.

sudo python setup.py install

Langkah 9: Uji apakah itu berfungsi. Ini berfungsi jika Anda dapat mengimpor MySQLdb.

python

>>> import MySQLdb

Langkah 10: Jika saat mencoba mengimpor Anda menerima pesan kesalahan yang mengeluhkan Library not loaded: libmysqlclient.18.dylib diakhiri dengan:Reason: image not found anda perlu membuat satu symlink tambahan yaitu:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

Anda kemudian dapat import MySQLdb tanpa kesalahan.

Satu masalah terakhir adalah jika Anda memulai Python dari direktori build, Anda akan mendapatkan kesalahan ini:

/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3:UserWarning:Modul _mysql sudah diimpor dari /Library/Python/2.5/ site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.pyc, tetapi XXXX/MySQL-python-1.2.3c1 sedang ditambahkan ke sys.path

Ini cukup mudah bagi Google, tetapi untuk menyelamatkan Anda dari masalah, Anda akan berakhir di sini (atau mungkin tidak... bukan URL yang tahan masa depan) dan cari tahu bahwa Anda perlu cd .. keluar dari direktori build dan kesalahan akan hilang.

Seperti yang saya tulis di atas, saya ingin melihat jawaban ini digeneralisasi, karena ada banyak pengalaman spesifik lainnya dari masalah mengerikan ini di luar sana. Edit, atau berikan jawaban Anda sendiri yang lebih baik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya harus menyimpan GUID di tabel MySQL?

  2. Kutipan Tunggal MySQL, Kutipan Ganda, Kutipan Kembali Dijelaskan Penggunaannya

  3. Memuat kelas com.mysql.jdbc.Driver ... adalah pesan yang tidak digunakan lagi

  4. Cara mengambil gambar dari database MySQL dan ditampilkan dalam tag html

  5. CONV() – Mengkonversi Angka Antara Basis Berbeda di MySQL