Sudahlah, menemukan diriku sendiri setelah menggali lebih dalam. Ini cukup sederhana, sebenarnya; Saya akan mencatat solusinya di sini jika ada orang lain yang membutuhkannya:
-
Dapatkan tarball sumber MySQL dari mysql.com (bukan tarball biner khusus platform)
-
Buka kemasannya, jalankan
./configure
dengan opsi apa pun yang sesuai dengan tujuan Anda, tetapi Anda akan memerlukan--enable-static
. Untuk memastikan, saya menyertakan--disable-shared
, meskipun mungkin tidak benar-benar diperlukan. Saya menggunakan yang berikut ini, Anda mungkin berbeda dalam hal lain:(Mengenai parameter charset dan collation di sini:mereka mungkin sama sekali tidak diperlukan dalam kasus penggunaan ini, karena saya akan menghapus MySQL setelahnya, tetapi karena semua koneksi klien menggunakan beberapa charset/collation, saya menutupi basis saya UTF-8 -bijaksana untuk berjaga-jaga jika charset/kolasi default yang digunakan oleh MySQLdb dipengaruhi oleh bagaimana
_mysql.so
dikompilasi -- orang-orang yang lebih bijaksana daripada saya mungkin ingin memastikan ini dengan satu atau lain cara.) -
Dapatkan tarball sumber mysql-python terbaru dari http://pypi.python.org/pypi /MySQL-python
-
Buka kemasannya, dan di
site.cfg
aturstatic = True
danmysql_config = /usr/local/mysql-src/bin/mysql_config
(atau jalur apa pun yang Anda pilih selamaconfigure
). -
Jalankan
python setup.py build
. Beberapa kesalahan terkait arsitektur mungkin muncul di akhir kompilasi, tetapi dapat diabaikan. -
Jalankan
sudo python setup.by install
. Ini membuat .egg disite-packages
. Anda direktori dan menambahkannya ke file easy_install.pth. -
Kamu sudah selesai! Anda sekarang dapat menghapus semua jejak MySQL serta sumber mysql-python. Telur dapat disalin apa adanya ke Mac lain yang menjalankan versi OS X yang sama. Saya dengan senang hati menyalinnya ke berbagai lingkungan virtual yang dibuat dengan
virtualenv
saat kita berbicara.
Ini berhasil pada 10.5, saya akan segera mengujinya pada 10.6 dan, jika ada sesuatu yang perlu dilakukan secara berbeda, laporkan hasilnya di sini.