Sayangnya, tidak ada solusi sepele saat ini. Jika Anda perlu menggunakan MySQL dengan Python, solusi paling sederhana dan paling andal di OS X adalah menginstal semuanya - Python, MySQLdb, paket Python pihak ketiga lainnya yang diperlukan, pustaka klien MySQL, dan, jika perlu, pustaka dan utilitas server MySQL - menggunakan sistem manajemen paket, seperti MacPorts . Mencoba menginstal berbagai komponen dari sumber yang berbeda sering mengalami masalah dengan executable dan library yang dibuat dengan ketidakcocokan:32-bit vs 64-bit, ABI yang berbeda (10.3 vs 10.6), dll.
Untuk sistem dengan Xcode dan sistem dasar MacPorts terinstal, Anda dapat membangun dan menginstal semuanya dengan satu perintah:
sudo port install py27-mysql
Jika Anda juga membutuhkan server MySQL:
sudo port install py27-mysql mysql5-server
Semua executable yang diinstal MacPorts akan diinstal secara default di /opt/local
, jadi Anda hanya perlu menjalankan sesuatu dari sana:
/opt/local/bin/python2.7
Untuk memudahkan pengguna Anda, Anda harus dapat menggunakan MacPorts untuk membangun kumpulan port yang diperlukan sebagai arsip biner dan mengatur skrip untuk menginstal sistem dasar MacPorts dan kemudian paket pra-bangun Anda. Ada beberapa info tentang ini di Panduan MacPorts di sini
. Namun, sebagian besar sudah ketinggalan zaman untuk MacPorts 2.0.x. Sampai Panduan diperbarui, ada informasi mulai di sini . Pendekatan teraman adalah dengan membangun satu set paket yang berbeda untuk setiap rilis OS X yang didukung. Itu mungkin dimungkinkan untuk membangun satu set yang kompatibel ke atas pada sistem tertua yang dibutuhkan:misalnya, membangun paket pada 10.5 yang juga akan bekerja pada sistem 10.6 dan 10.7. Untuk mencegah interferensi dengan penginstalan MacPorts pelanggan, Anda juga dapat membangun sistem dasar MacPorts dari sumber dan mengubah root penginstalan menjadi sesuatu selain /opt/local
.
Pendekatan yang lebih idiomatis pada OS X adalah menggunakan py2app untuk membuat bundel aplikasi yang menyertakan Python dan pustaka klien MySQL. Saya tidak tahu apakah ada yang berhasil melakukannya.
Saran lain:jika Anda tidak benar-benar membutuhkan server jarak jauh, pertimbangkan untuk menggunakan SQLite. Dukungan untuk SQLite disertakan dalam Pustaka Standar Python.