在过去的几天里,它一直很好。但今天,我正在尝试解决一些编码问题,它突然停止工作。我将我的代码恢复到之前的状态,但由于某种原因,错误仍然存在。 (遗憾的是编码问题也是如此。)
我在Python 3.6.2和Anaconda上使用MySQL和MySQLdb。我知道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问题,但我仍然不确定原因是什么。
答案 0 :(得分:0)
清除重新安装sqlalchemy
已解决此问题。
不敢相信这不是我尝试过的第一件事。
但我仍然不知道它是如何被破坏的。
$ conda uninstall sqlalchemy
$ conda install sqlalchemy