这两天新买了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)
到这里基本问题都解决了。撒花