python3 sqlalchemy No module nam

2019-06-27  本文已影响0人  mpyl

Python ORM之一: sqlalchemy

python3 使用sqlalchemy连接mysql数据库报错ModuleNotFoundError: No module named 'MySQLdb'

练习Pyhton核心编程第三版的第6章-数据库编程时,

    try:
        orm = SQLAlchemyTest(DSNs[db])
    except RuntimeError:
        printf('\nERROR: %r not supported, exit' % db)
        return

当 db = 'mysql'时,总是报错。捕获异常是ImportError:No module named 'MySQLdb'
另外我的DSNs是:

DSNs = {
    'mysql': 'mysql://root:mypassword@localhost/%s' % DBNAME,
    'sqlite': 'sqlite:///:memory',
}

这是因为 SQLAlchemy 连接mysql默认驱动是MySQLdb,MySQLdb仅支持 python2.x, 没有支持python3的版本,如果使用python3.x版本时,需要安装并使用额外的库 pymysql
然后将DSNs改为:

DSNs = {
    'mysql': 'mysql+pymysql://root:123456@localhost/%s' % DBNAME,
    'sqlite': 'sqlite:///:memory',
}

总结

这本书虽然评价不错,销量很高,但是我个人对这本书不是很满意。

行了,不说这些废话了(个人意见,仅供参考)

最后贴上解决此问题的参考文章

上一篇 下一篇

猜你喜欢

热点阅读