Pembaruan bagi mereka yang menggunakan Python3:
Anda cukup menggunakan conda install mysqlclient
untuk menginstal pustaka yang diperlukan untuk menggunakan MySQLdb seperti yang saat ini ada. 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, 3 pustaka ini diinstal di komputer saya).
Inilah kisah pengalaman bertele-tele saya dengan masalah ini. Akan sangat senang melihatnya diedit atau digeneralisasikan jika Anda memiliki pengalaman yang lebih baik tentang masalah ini ... terapkan sedikit keajaiban SO itu.
Catatan: Komentar di paragraf berikutnya diterapkan ke Snow Leopard, tetapi tidak untuk Lion, yang tampaknya memerlukan MySQL 64-bit
Pertama, penulis (masih?) MySQLdb mengatakan di sini bahwa salah satu masalah yang paling merusak adalah bahwa OS X diinstal dengan Python versi 32 bit, tetapi kebanyakan rata-rata orang (termasuk saya) 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 pustaka MySQLdb. Mereka sering kali memiliki perbedaan yang halus. Ini tampaknya yang paling populer bagi saya, dan memberikan solusi yang berhasil. Saya telah memperbanyaknya dengan beberapa pengeditan di bawah
Langkah 0:
Sebelum saya mulai, saya berasumsi bahwa Anda telah menginstal MySQL, Python, dan GCC 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 / * - 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 simbolik di bawah lib untuk mengarah 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 ini
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 Anda selesai.
sudo python setup.py install
Langkah 9:
Uji apakah berfungsi. Ini berfungsi jika Anda dapat mengimpor MySQLdb.
python
>>> import MySQLdb
Langkah 10:
Jika saat mencoba mengimpor Anda menerima pesan kesalahan yang 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 harus bisa melakukannya 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: Module _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 sangat tahan masa depan) dan mencari tahu bahwa Anda perlu cd ..
keluar dari direktori build dan kesalahan akan hilang.
Seperti yang saya tulis di bagian atas, saya ingin melihat jawaban ini digeneralisasikan, karena ada banyak pengalaman spesifik lain dari masalah mengerikan ini di luar sana. Sunting, atau berikan jawaban Anda sendiri yang lebih baik.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
. Setelah saya menjalankan ini, itu diimpor seperti yang diharapkan ... akhirnya. Wheewwww. Hanya fyi bagi mereka yang memiliki posisi serupa.Cara cepat dan mudah untuk Mac OS X 10.8 (Mountain Lion), 10.9 (Mavericks), 10.10 (Yosemite), dan 10.11 (El Capitan):
Saya berasumsi Anda memiliki XCode, alat baris perintahnya , Python, dan MySQL yang diinstal.
Instal PIP:
Edit ~ / .profile: (Mungkin tidak diperlukan di Mac OS X 10.10)
Salin dan tempel dua baris berikut
Simpan dan keluar. Kata penutup jalankan perintah berikut:
Instal MySQLdb
Untuk menguji apakah semuanya berfungsi dengan baik coba saja
Itu bekerja seperti pesona bagi saya. Saya harap ini membantu.
Jika Anda menemukan kesalahan tentang pustaka yang hilang: Pustaka tidak dimuat: libmysqlclient.18.dylib maka Anda harus menautkannya menjadi
/usr/lib
seperti ini:sumber
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
perintah dari bawah.export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/
brew install mysql
, saya tidak perlu melalui langkah ke-2.Instal mysql dan python melalui Macports Para porter telah melakukan semua pekerjaan sulit.
harus menginstal apa yang Anda butuhkan. (lihat Stack overflow untuk komentar tentang server mysql )
Jika Anda hanya perlu terhubung ke mysql dan tidak menjalankan server maka baris pertama sudah cukup.
Macports sekarang (awal 2013) akan menyediakan unduhan biner untuk kombinasi umum OS arsitektur yang dapat dieksekusi, untuk yang lain (dan jika Anda memintanya) itu akan dibangun dari sumber.
Secara umum macports (atau fink) membantu ketika ada pustaka kompleks dll yang perlu diinstal.
Kode hanya Python dan jika dependensi C sederhana dapat diatur melalui setuptools dll, tetapi itu mulai menjadi rumit jika Anda mencampur keduanya.
sumber
Instal pip:
Instal minuman:
Instal mysql:
Instal MySQLdb
Jika Anda memiliki masalah kompilasi, coba edit file ~ / .profile seperti di salah satu jawaban di sini.
sumber
pip install mysqlclient
sebaliknya. Bekerja!Inilah langkah lain yang harus saya lalui, setelah menerima kesalahan saat menyelesaikan Langkah 9:
Referensi: Terima kasih! http://ageekstory.blogspot.com/2011_04_01_archive.html
sumber
Seperti yang dinyatakan di Menginstal MySQL-python di mac :
Kemudian uji:
sumber
Baru saja mengalami masalah ini (lagi!) Setelah mendapatkan kotak Lion baru.
Solusi terbaik yang saya temukan (masih belum 100% optimal, tetapi berfungsi):
pastikan Anda memiliki python 64-bit. Bagaimana cara memeriksa apakah perpustakaan 32bit / 64bit dibangun di Mac OS X?
instal easy_install jika Anda tidak memilikinya. http://packages.python.org/distribute/easy_install.html
instal GCC jika Anda tidak memilikinya.
Anda bisa mendapatkannya dengan mengunduh XCode / Dev Tools dari Apple - ini adalah unduhan besar -
... tetapi saya merekomendasikan github ini yang memiliki apa yang Anda butuhkan (dan tidak memiliki XCode): https://github.com/kennethreitz/osx-gcc-installer
Saya mengunduh PKG bawaan mereka untuk singa, https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg
pastikan Anda telah mendownload versi 64-BIT dari Komunitas MYSQL. (Pemasangan DMG adalah cara yang mudah) http://dev.mysql.com/downloads/mysql/
Tetapkan jalur sebagai berikut:
ekspor PATH = $ PATH: / usr / local / mysql-XXXX
ekspor DYLD_LIBRARY_PATH = / usr / local / mysql / lib /
ekspor ARCHFLAGS = '- arch x86_64'
CATATAN BAHWA:
Instal binatang itu!
easy_install MySQL-python
LANGKAH TERAKHIR:
Tambahkan DYLD_LIBRARY_PATH secara permanen!
Anda dapat menambahkannya ke bash_profile atau yang serupa. Ini adalah langkah yang hilang bagi saya, yang tanpanya sistem saya terus bersikeras pada berbagai kesalahan dalam menemukan _mysql.so dan seterusnya.
ekspor DYLD_LIBRARY_PATH = / usr / local / mysql / lib /
@ richard-boardman, baru saja memperhatikan solusi tautan lunak Anda, yang mungkin berlaku melakukan hal yang sama dengan solusi PATH saya ... teman-teman, apa pun yang terbaik untuk Anda.
Referensi terbaik: http://activeintelligence.org/blog/archive/mysql-python-aka-mysqldb-on-osx-lion/
sumber
Anda dapat mencoba menggunakan pure-python
pymysql
:(Atau gunakan
pip
jika Anda sudah menginstalnya.) Kemudian, tambahkan ini sebelum Andaimport MySQLdb
di kode Anda:sumber
Atau coba sederhana:
Jika memberikan error seperti di bawah ini:
, lalu jalankan ini
sumber
Jika Anda menggunakan MySQL 64 bit, menggunakan ARCHFLAGS untuk menentukan arsitektur cpu Anda saat membangun pustaka mysql-python akan berhasil:
sumber
harus memperbaiki masalah untuk Anda karena sistem tidak dapat menemukan file mysql_config.
sumber
Di macos Sierra, ini berfungsi untuk saya, di mana python dikelola oleh anaconda:
anaconda search -t conda mysql-python
anaconda show CEFCA/mysql-python
conda install --channel https://conda.anaconda.org/CEFCA mysql-python
Yang akan digunakan dengan SQLAlchemy:
sumber
Jawaban ini adalah pembaruan, sekitar November 2019. Tak satu pun dari penginstalan pip populer akan memberi Anda pengaturan yang berfungsi di MacOS 10.13 (dan kemungkinan versi lain juga). Berikut adalah cara sederhana agar saya dapat bekerja:
Jika Anda memerlukan bantuan untuk menginstal brew, lihat situs ini: https://brew.sh/
sumber
Saya mengalami masalah ini dan menemukan bahwa
mysqlclient
perlu tahu di mana menemukan openssl, dan OSX menyembunyikan ini secara default.Temukan openssl dengan
brew info openssl
, lalu tambahkan jalur keopenssl
bin Anda ke PATH Anda:Saya merekomendasikan menambahkan itu ke .zshrc atau .bashrc Anda sehingga Anda tidak perlu khawatir tentang itu di masa mendatang. Kemudian, dengan variabel itu diekspor (yang mungkin perlu menutup dan membuka kembali sesi bash Anda), tambahkan dua variabel env lagi:
Kemudian, akhirnya, jalankan:
dan itu harus dipasang dengan baik.
Sumber: https://medium.com/@shandou/pipenv-install-mysqlclient-on-macosx-7c253b0112f2
sumber