【Python pd.read_sql()报错】已解决ImportError: Unable to find a usable engine; tried using: ‘sqlalchemy‘.

问题:使用pd.read_sql()保存数据到数据库时出现

ImportError: Unable to find a usable engine; tried using: 'sqlalchemy'.
A suitable version of sqlalchemy is required for sql I/O support.
Trying to import the above resulted in these errors:

**解决过程**
**原因:**这个 ImportError 错误信息表明你尝试使用 pandas 进行 SQL I/O 操作时,遇到了一个问题。错误提示指出 pandas 需要版本为 '1.3.0' 或更新的 'sqlalchemy',但是当前安装的是 '1.2.7' 版本,这是一个过时的版本。
所以升级了sqlalchemy 库到至少 '1.3.0' 版本或更高。你可以使用 pip 来升级 sqlalchemy,具体命令如下:

```python
pip install --upgrade sqlalchemy

后续:升级sqlalchemy库,再次运行pd.read_csv()还是出现错误,报

Exception has occurred: TypeError
__init__() got multiple values for argument 'schema':TypeError: __init__() got multiple values for argument 'schema'

的错误;
**原因:**这个错误 TypeError: init() got multiple values for argument ‘schema’ 表明在调用某个函数的 init 方法时,为参数 schema 提供了多个值。在 pandas 的 read_sql 函数中,并没有直接的 schema 参数,所以这个错误很可能来自于 engine 对象初始化时或者是在底层的 SQLAlchemy 连接中不正确地传递了 schema 参数。

**检查 SQLAlchemy 版本:**确保你使用的 SQLAlchemy 版本与 pandas 兼容。有时候,更新 SQLAlchemy 或 pandas 可以解决兼容性问题。

最后重新安装sqlalchemy和pandas库的版本,我这里分别使用1.2.7和0.25.3版本,其他版本的组合肯定也是可以的,主要是SQLAlchemy 或 pandas 可以兼容:

pip install  sqlalchemy==1.2.7 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install  pandas==0.25.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

总结

pd.read_sql() 是 pandas 库中用于从 SQL 数据库读取数据的方法。这个错误提示表示 pandas 在尝试使用 sqlalchemy 作为引擎去执行 SQL 查询时失败了,因为它找不到一个可用的 sqlalchemy 引擎。

出现这个错误的原因可能有几个:

  1. 未安装 sqlalchemy:确保你已经安装了 sqlalchemy 库。你可以使用 pip 来安装它:
pip install sqlalchemy
  1. 环境问题:有时你可能在一个虚拟环境中工作,而 sqlalchemy 没有安装在这个特定的环境中。确保你在正确的环境中安装了所有需要的库。

  2. 版本不兼容:你安装的 sqlalchemy 版本可能与 pandas 或其他依赖库不兼容。检查你的 sqlalchemy 版本,并尝试升级或降级到一个与 pandas 兼容的版本。

  3. 路径或配置问题:如果你的 Python 环境配置有问题,或者 sqlalchemy 没有安装在 Python 能够找到的路径下,这也可能导致这个问题。

  4. 依赖链问题:有时候,其他库可能依赖于特定版本的 sqlalchemy,导致版本冲突。检查你的 requirements.txtpip list 来查看所有已安装的库和它们的版本,确保没有版本冲突。

如果你已经确定 sqlalchemy 已经安装并且没有版本冲突,但问题依然存在,你可以尝试以下步骤:

  • 重启你的 Python 解释器或 IDE。
  • 检查你的 PYTHONPATH 环境变量,确保它包含了你的 Python 库的安装路径。
  • 尝试在一个新的虚拟环境中重新安装 pandas 和 sqlalchemy。

最后,如果你使用的是 pd.read_sql(),确保你的代码正确配置了 SQLAlchemy 引擎,例如:

from sqlalchemy import create_engine
import pandas as pd

# 创建一个数据库引擎
engine = create_engine('数据库连接字符串')

# 使用引擎读取 SQL 查询结果
df = pd.read_sql('SELECT * FROM your_table', engine)

替换 '数据库连接字符串' 为你的数据库连接信息(比如 'sqlite:///your_database.db' 对于 SQLite 数据库,或者 'mysql+pymysql://username:password@localhost/dbname' 对于 MySQL 数据库等)。

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云天徽上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值