在mac python2下解决mysqldb安装问题

这两天新买了mac,第一次用mac还是遇到不少问题,在安装mysqldb时出现了以下错误:

Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/bb/skpfxrzj1jv863wm99wcb_z00000gp/T/pip-build-IiQWYZ/MySQL-Python/

MySQLdb 其实包含在 MySQL-python 包,然后就开始了我的找错之路。

尝试了网上很多的教程,例如安装x-code,安装homebrew,修改环境变量等等,最终用以下的方法解决了,老泪众横。

现在给记录记录解决的办法:

打开终端:

sudo pip install MySQL-Python

然后就发现出问题了,就是文章一开始显示的问题。

找了很多方法,会发现其实是mysql_config出了问题,现在就要修改一下mysql_config,在终端输入:

vim /usr/local/bin/mysql_config

-----------------------------------我是分界线----------------------------------------------

vim是一个系统自带的文本编辑器:这里插入vim的一些操作功能:

vim有插入模式,命令行模式等。

  • i → Insert 模式,按 ESC 回到 Normal 模式.
  • x → 删当前光标所在的一个字符。
  • :wq → 存盘 + 退出 (:w 存盘, :q 退出)
  • dd → 删除当前行,并把删除的行存到剪贴板里
  • p → 粘贴剪贴板

-------------------------------------我是分界线----------------------------------------------------

现在我们需要编辑修改mysql_config,这是按一下 i ,就进入了插入模式,找到:

libs="$libs -l "
修改为
libs="$libs -lmysqlclient -lssl -lcrypto"

修改后按esc退出插入模式回到普通模式,输入:wq!保存并退出vim。

这时候尝试一下:

sudo pip install mysqlclient
sudo pip install MySQL-Python

如果没有pip,就要先安装pip。

现在尝试一下python,import MySQLdb,嗯。。。。还是有点问题。。。。。

 

首先,查看错误输出以查看有问题的python模块所在的位置:

ImportError:dlopen(/Library/Python/2.7/site-packages/_mysql.so,2):未加载库:libmysqlclient.18.dylib引自:/ Library /Python / 2.7 / site-packages / _mysql.so原因:图像未找到

好的,所以有问题的文件是/Library/Python/2.7/site-packages/_mysql.so

接下来,找出_mysql.so认为它应该找到libmysqlclient.18.dylib的位置:

otool -L /Library/Python/2.7/site-packages/_mysql.so
显示结果
/Library/Python/2.7/site-packages/_mysql.so:
    libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

所以,它正在寻找没有路径信息的libmysqlclient.18.dylib,让我们解决这个问题:

sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Library/Python/2.7/site-packages/_mysql.so

现在_mysql.so知道库的完整路径,一切正常,无论环境变量如何。

otool -L /Library/Python/2.7/site-packages/_mysql.so    
显示结果                                                                                       
/Library/Python/2.7/site-packages/_mysql.so:
    /usr/local/mysql/lib/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

到这里基本问题都解决了。撒花 

你可能感兴趣的:(Python)