运行要求说明:
注:(1)创建数据库时,default character为utf8,collate为utf8_general_ci
参考解决方案 Mac安装Mysql-python遇到的坑,被这俩报错反复摩擦:'my_config.h' file not found 和 IndexError: string index out of range
brew install mysql
brew unlink mysql
brew install mysql-connector-c
sed -i -e 's/libs="$libs -l "/libs="$libs -lmysqlclient -lssl -lcrypto"/g' /usr/local/bin/mysql_config
pip install MySQL-python
brew unlink mysql-connector-c
brew link --overwrite mysql
参考坑3:
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
这里是因为 @rpath
存在异常
首先使用命令查看/Library/Python/2.7/site-packages/_mysql.so
所有调用的路径
使用命令查看得到如下结果
otool -L /Library/Python/2.7/site-packages/_mysql.so
/Library/Python/2.7/site-packages/_mysql.so:
@rpath/libmysqlclient.21.dylib (compatibility version 21.0.0, current version 21.0.0)
libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
这里第一条路径 @rpath
找不到所以报错
额外的学习资料
C++静态库与动态库 理解_mysql.so 是什么
Python 和 C 语言中调用.so动态库 说明
dlopen
函数在做什么