python – SQLAlchemy突然停止使用MySQLdb

  • A+
所属分类:Python

在过去的几天里,它一直运行良好。但是今天,我正在尝试解决一些编码问题,但它突然停止工作。我将代码恢复为以前的样子,但是由于某种原因,错误仍然存​​在。 (可悲的是编码问题也是如此。)

我在Python 3.6.2和Anaconda上使用MySQLdb和MySQL。我知道MySQLdb与Python 3和Anaconda不兼容。但是,我不想使用Python 2或其他驱动程序。

我已经通过安装mysqlclient来解决此问题,并且能够在Qt控制台中执行import MySQLdb。我还能够在30分钟前使用下面的代码创建一个引擎。

from sqlalchemy import create_engine
engine = create_engine('mysql://user:pass@localhost:3306/db?charset=utf8')

我用远程仓库中的代码检查了我的代码,以确保没有错误。完全一样但是现在我遇到了以下错误:

NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:mysql

考虑到我俩都有,这似乎很奇怪。当我使用%run myscript.py在Qt控制台中运行脚本时,会看到此错误。从昨天开始,我一直没有任何问题。

我没有使用任何虚拟环境,因为我发现很难在Windows和Anaconda上管理它们。在运行脚本之前,我还检查了MySQLdb是否可在控制台中导入。因此,我知道模块已正确安装。

我试图弄清楚发生了什么,在调查中发现我缺少了sqlalchemy.connectors模块,但是我不确定这是否确实是一个问题,因为我在网上找不到任何类似的问题。这是我得到此错误的方法:

from sqlalchemy.dialects import mysql
ModuleNotFoundError: No module named 'sqlalchemy.connectors'

有人知道这个问题是什么吗?这实在令人沮丧,因为这似乎完全出乎意料:/

**我刚刚测试了其他驱动程序是否正常工作(即pymysql),但是没有。我认为这是因为sqlalchemy拒绝使用该方言,而与驱动程序无关。

编辑:要重现(至少目前在我的机器上),我只需要2行。

from sqlalchemy import create_engine
engine = create_engine('mysql://user:pass@localhost:3306/db')

EDIT2:我将其确定为Anaconda问题,但是我仍然不确定原因是什么。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin