1. Install pip
$ cd /Users/ZJ/Downloads/pip-9.0.1
$ sudo python setup.py install
2.Install MySQLdb
$ sudo pip install MySQL-python
$ python
entering python:
>>> import MySQLdb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>
import _mysql
ImportError: dlopen(/Library/Python/2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Library/Python/2.7/site-packages/_mysql.so
Reason: unsafe use of relative rpath libmysqlclient.18.dylib in /Library/Python/2.7/site-packages/_mysql.so with restricted binary
>>> exit()
Solution:
$ sudo install_name_tool -change libmysqlclient.18.dylib \
/usr/local/mysql/lib/libmysqlclient.18.dylib \
/Library/Python/2.7/site-packages/_mysql.so
$ python
>>> import MySQLdb
-------------------------------------------------------------------------------------------------------------------------------------------------------
ImportError: dlopen(/Library/Python/2.7/site-packages/_mysql.so, 2): no suitable image found. Did find:
/Library/Python/2.7/site-packages/_mysql.so: mach-o,but wrong architecture
>>> exit()
Solution:
1. Set bash_profile:
$ vi ~/.bash_profilei // start inserting
PATH="/usr/local/mysql/bin:${PATH}"
export PATH
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
export VERSIONER_PYTHON_PREFER_64_BIT=yes
export VERSIONER_PYTHON_PREFER_32_BIT=no
click "esc" keyboard
:wq //quit vi
2. Install MySQL-python again:
$ cd /Users/ZJ/Downloads/MySQL-python-1.2.5
$ ARCHFLAGS="-arch x86_64" python setup.py build // if python is 64-bit
$ ARCHFLAGS="-arch i386" python setup.py build // if python is 32-bit
$ sudo python setup.py install
* To check whether python is 64-bit/32-bit
$ python
>>> import struct
>>> struct.calcsize("P") // if the answer is 8, it is 64 bit; if the answer is 4, it is 32 bit
First solution may contain some error but second Solution is absolutely correct for mac to import MySQLdb.