在python3下使用peewee-2.1.4做ORM。连接MySQL数据库,提示需要MySQLdb模块,发现MySQLdb模块不支持python3,各种折腾、google不得其法。
然后又试着使用MySQL官方forPython驱动 Connector/Python
需要对qeewee代码改动
改动的渐入佳境,沾沾自喜中发现peewee的代码中有如下片段
try:
import MySQLdb as mysql
except ImportError:
try:
import pymysql as mysql
except ImportError:
mysql = None
基本上就是说如果找不到MySQLdb那么就找pymysql,
于是在https://pypi.python.org/pypi搜索pymysql发现PyMySQL3 0.5
折腾了一天的python3中使用peewee连接mysql告破。
wget https://pypi.python.org/packages/source/P/PyMySQL3/PyMySQL3-0.5.tar.gz
tar -xzf PyMySQL3-0.5.tar.gz
cd PyMySQL3-0.5
sudo python3 setup.py install
接着将
try:
import MySQLdb as mysql
except ImportError:
try:
import pymysql as mysql
except ImportError:
mysql = None
改为
try:
import pymysql as mysql
except ImportError:
try:
import MySQLdb as mysql
except ImportError:
mysql = None
这里还有一点需注意, python3中,粗略地说 .... 在Python 3,所有的字符串都是使用Unicode编码的字符序列, 无需use_unicode=True,
所以将peewee.py 1882行的 use_unicode=True 注释. 否则会出现编码错误.