MetaData.__init__() 使用 sqlite 时出现意外的关键字参数“bind”

问题描述 投票:0回答:2

我对sqlite非常陌生,我使用macbook m1,我尝试使用jupyter笔记本来做sql 这是我的代码

%load_ext sql

import csv, sqlite3

con = sqlite3.connect("socioeconomic.db")
cur = con.cursor()

在此之前一切都很好 但是当我连接到 sqlite

%sql sqlite:///socioeconomic.db

有类似这样的错误

MetaData.__init__() got an unexpected keyword argument 'bind'
Connection info needed in SQLAlchemy format, example:
               postgresql://username:password@hostname/dbname
               or an existing connection: dict_keys([])

你有什么建议我应该做什么吗?

我尝试使用 Windows 以外的其他笔记本电脑,相同的代码可以工作,但在 mac 中则不行

sqlite jupyter-notebook
2个回答
3
投票

查看本指南! 基本上有两种方法可以从 Jupyter Notebook 连接到 SQLite 本地数据库。我认为这与你的 Mac 版本无关,因为我有 M2 并且运行良好。

检查本地是否有 .db 文件。另外,检查相同的 sqlalchemy 版本是否匹配。我相信

pip install sqlalchemy==1.4.4
应该有效。迁移到 Jupysql 的另一个原因是它支持最新的 SQLAlchemy 版本。

这里有两种方法可以通过

Jupysql
运行它:

  1. 您可以将现有连接传递到
    %sql
    ,如下所示:
some_engine = create_engine("sqlite:///some.db")
%sql some_engine
  1. 您可以直接连接到它:
%sql sqlite:///foo.db

对于这两个选项,您都需要设置正确的包并通过

%load_ext sql

导入它

0
投票

我所做的只是简单地降级SQLalchemy版本。我的是2.0,所以我把它回滚到1.4.39版本。为此,请转到环境选项卡,选择并应用版本 1.4.39。确保重新启动内核。

© www.soinside.com 2019 - 2024. All rights reserved.