Mysql/MAMP + Django1.8.2(Win7 64bit/Mac OS X)环境搭建

作者: u014483186
发布时间:2015-07-29 11:33:18

Win 7 64bit + Mysql5.6.25:

1. 使用mysql connector/Python 2.1.2: oracle官方的mysql connector/Python现在暂时不支持Django1.8,所以拿Django1.7.8测试了下,发现mysql connector/Python自从2.X版本后其返回数据都是bytearray类型的, 在使用Django migrate迁移数据库时会报如下错误:

File "/home/paul/public_html/p_kreker/env/lib/python3.4/site-packages/django/db/migrations/recorder.py", line 60, in applied_migrations
    return set(tuple(x) for x in self.migration_qs.values_list("app", "name"))
TypeError: unhashable type: 'bytearray'


2. 使用Django官方推荐的Mysqlclient1.3.6: 源码安装始终无法成功,按照网上各种方式操作,包括下载旧版本1.2.3 64bit编译后的可执行文件安装,修改steup.cfg等都失败,放弃。

3. 使用Mysql-python1.2.5: 本来以为也不可能成功,因为作为它fork版本的mysqlclient都安装失败。先安装的Microsoft Visual C++ Compiler for Python 2.7和mysql connector/C 32bit. 然后下载Mysql-python1.2.5的exe文件安装,没想到竟然成功了。


Mac OS X 10.10.2 + MAMP3.0.6:

我现在觉得在Linux-based还是Unix-based的操作系统上搭各种开发环境或企业应用环境比Windows platform上问题少得多了(除非microsoft自家产品)。由于之前有个课project做php开发,结果就用上了MAMP,这次也懒得单独装mysql了,于是就用现成的MAMP里的mysql。

在MAC和Linux上install and use上述三种mysql API就简单多了,只遇到了一下两个小问题():

1. mysql connector/Python 2.1.2的问题和windows下一样。

2. 由于MAMP下mysql lib文件是放在其安装目录下,所以python连接mysql时会报如下错:

ImportError: dlopen(/Library/Python/2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib

解决方案有两个:

1.(推荐使用)

Mysql: sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

MAMP: sudo ln -s /Applications/MAMP/Library/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

2.

Mysql: 更改环境变量 export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"

MAMP: export DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib/:$DYLD_LIBRARY_PATH"

这种方法会导致一些调用DYLD_LIBRARY_PATH的操作出现问题,比如我使用sudo或者使用git时就会报错,建议还是不要用这种方式。


版权声明:本文为博主原创文章,未经博主允许不得转载。

来源:http://blog.csdn.net/u014483186/article/details/46489045

推荐: