在 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

无法在 Python 3.6 中运行 dlib 模块

无法在 Python 3.6 中使用 _pickle 加载 Python 2.x .dat 文件 [重复]

无法在 python 3.6 中安装 pickle

在 Python 3.6 上安装 MySqlDB

Python 3.6 Beautiful Soup - 在网页抓取期间无法获取嵌入式视频 URL