在 Python 3.6 中无法通过 SQLAlchemy 连接到 mySQL
Posted
技术标签:
【中文标题】在 Python 3.6 中无法通过 SQLAlchemy 连接到 mySQL【英文标题】:Not able to connect to mySQL through SQLAlchemy in Python 3.6 【发布时间】:2017-11-16 18:28:48 【问题描述】:我在 Anaconda 中使用 python 3.6。我正在尝试通过 SQLAlchemy 连接到 mysql 5.7,因为 mysql.connector flavor='mysql' 在最新版本中已弃用。(当我使用 python 3.4 并且能够使用 flavor=mysql optoin 时,我能够连接到数据库通过 pandas 插入数据库)。
我正在尝试通过这个 SQLAlchemy 引擎方法来做同样的事情。但我无法连接。
这是我的代码:
import sqlalchemy as sa
engine= sa.create_engine("mysql+mysqldb://user:password@localhost/databasename")
我收到以下错误:
ModuleNotFoundError: No module named 'MySQLdb'
请帮忙。
谢谢!
【问题讨论】:
对于 Python 3 你应该使用PyMySQL
而不是 MySQLdb
是的......谢谢......这就像一个魅力! :)
基本问题是MySQLDb1适配器不支持Python3。 this SO question 的答案讨论了可用的不同适配器以及这种情况的更多上下文。我建议您查看并确定最适合您的替代方案。
【参考方案1】:
这在游戏中已经很晚了,我在 python3 和 Flask-SQLAlchemy 上遇到了同样的问题。
我通过在我的 virtualenv 中安装 pymysql 解决了这个问题
pip install pymysql
然后使用database_uri作为
'mysql+pymysql://username:password@host:port/db_name'
而不是
'mysql+mysqldb...'
【讨论】:
以上是关于在 Python 3.6 中无法通过 SQLAlchemy 连接到 mySQL的主要内容,如果未能解决你的问题,请参考以下文章
无法在 macOS 上为 Python 3.6 导入 pdftotext