原来MySQLdb都是上sourceforge上去下载,现在通过pip安装,发现这模块原来的开发者不维护了,也不支持Python3,但是又没有好的高效的C/C++实现的mysql客户端实现,所以MySQLdb被包装了各种名称,各种python包,开始的时候就安装成了MySQL-python,结果是python2.7能安装成,python3.5环境安装编译时各种语法错,说是只支持到python3.4。
后来才发另一个包叫mysqlclient==1.3.13是同时支持python2.7 和 python3.5的,其实也是对MySQLdb源码的修正和打包。
无法通过pip直接编译安装,需要pip download下来,修改编译配置site.cfg,依赖的mysql client库和头文件位置,其实也就是mysql_config的位置:
static = True
cflags = '-Ofast'
mysql_config = ~/mysql/bin/mysql_config
然后python setup.py build,编译成功后就可以python setup.py install了。安装方便是egg安装,其实就是一个 zip包,python加载时会在内存中解压。
注意:mac上brew加pip下载来编译时,可能会因为openssl版本冲突(brew下来的mysqlclient依赖的openssl 1.0.0与系统的openssl 0.98)出现_X509_check_host找不到问题,此时需要采用static=False动态链接。