Mac下配置蓝鲸项目遇到的坑

配置流程

运行要求说明:

  1. 安装python 2.7
  2. 安装requirements.txt文件中的python包【相关下载可查看:http://bk.tencent.com/campus/developer-center/dev_guide/newbie_guide/ 开发环境安装】
  3. 安装mysql,并根据config\settings_develop.py中的APP_CODE创建对应数据库,同时调整 config\settings_develop.py里的DB用户名密码
  4. 数据库初始化:python manage.py migrate (创建django的表,和框架自带表)
  5. 配置hosts: 127.0.0.1 appdev.o.qcloud.com
  6. 启动工程:python manage.py runserver (测试访问 appdev.o.qcloud.com:8000)

注:(1)创建数据库时,default character为utf8,collate为utf8_general_ci

遇到问题

config.h not find

参考解决方案 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

MySQLdb 安装配置问题

参考解决方案 mac pycharm import MySQLdb 的坑

参考坑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函数在做什么