许多人都推荐Mac电脑,说高效,打算这台电脑性能跟不上的时候买台RMBP,以前用过一段时间朋友的Mac电脑,很难用,现在想着以后要换,就现在Vmware里安装Mac OS吧,熟悉一下。
今天因为学习python,需要和数据库交互,就打算在Mac OS下安装一下MySQL,安装这个比较顺利,但是Mac自带的python没有MySQLdb,需要重新安装,遇到了很多麻烦,总结记录一下。
安装python-mysqldb有两种方法:
1、联网下载,使用sudo easy_install mysql-python命令安装,但是基本上不会成功的,原因有两个:一是找不到mysql_config位置,二是现在基本上安装的是64位的系统和64位的python,和默认的32位安装包冲突。我在尝试的时候是找不到mysql_config位置。
2、手动安装,去http://sourceforge.net/projects/mysql-python/files/下载,解压后修改site.cfg:将mysql_config注释取消并将路径更改为mysql安装路径:
[sourcecode language="Python"]
mysql_config = /usr/local/mysql/bin/mysql_config
[/sourcecode]
然后执行
[sourcecode language="Python"]
python setup.py install
[/sourcecode]
但是报错,
网上有的的资料说是去Xcode的Preference的Download下的Components下载command line tool
我下载后执行还是报那个错误,查了一下说是
mac os的Xcode从5.1起给编译器规定对于未知参数传入视为error,我们需要使用ARCHFLAGS将该error降级为warning,因此最后的安装命令应该如下:
[sourcecode language="Python"]
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future python setup.py install
[/sourcecode]
此时安装没有报错,但是执行
python
进入python环境执行
[sourcecode language="Python"]
import MySQLdb
[/sourcecode]
报以下错误:
Traceback (most recent call last): File "./b", line 26, in import MySQLdb File "/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/MySQLdb/__init__.py", line 19, in import _mysql ImportError: dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so, 2): no suitable image found. Did find: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so: mach-o, but wrong architecture
解决方法是:需要解决动态引入的问题了(重新做一遍,重新编译)
[sourcecode language="Python"]
python setup.py clean
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future python setup.py build
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future python setup.py install
[/sourcecode]
终端进python
[sourcecode language="Python"]
import MySQLdb
[/sourcecode]
还会报一个错误,
这是因为没有设置环境变量,
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
然后就好了