python - SQLalchemy 1.4.15版本后无法连接到SQL Server

标签 python sqlalchemy

我有一个运行良好的 python 脚本,但如果我将 SQLalchemy 升级到比 1.4.15 更新的版本(或者这是我最后一次工作),则会收到错误:

sqlalchemy.exc.InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序 (0) (SQLDriverConnect)')

我在 python 中的连接如下所示:

import sqlalchemy
from sqlalchemy import create_engine


#Create connection to SQL
NAV = 'mssql://<server>/<database>?driver=SQL+Server+Native+Client+11.0?trusted_connection=yes'
engine = create_engine(NAV, fast_executemany=True)

如果我将 SQLalchemy 降级到 1.4.15,它会再次正常工作。

任何想法,因为我不想永远停留在旧版本上:-)

最佳答案

SQLAlchemy 1.4.16 修复了连接 U​​RI 解析中长期存在但微妙的错误。以前的版本会接受

…/dbname?driver=SQL+Server+Native+Client+11.0?trusted_connection=yes

并且基本上忽略第二个?之后(包括)的任何内容。现在 SQLAlchemy 要求后续(第二个、第三个……)参数用 & 分隔,而不是 ?,因此“driver=”被解释为

SQL+Server+Native+Client+11.0?trusted_connection=yes

而不仅仅是

SQL+Server+Native+Client+11.0

前者(“+”未转义为空格)与任何已知的 ODBC 驱动程序名称都不匹配。

如问题评论中所述,修复方法是简单地省略 ?trusted_connection=yes 部分,因为无论如何都不需要它。

关于python - SQLalchemy 1.4.15版本后无法连接到SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68725770/

相关文章:

python - 在数据透视后对多索引的 pandas 数据帧数据重新排序

python - 迭代元组,获取下一项

python - pyenv activate 和 pyenv local 之间有区别吗?

python - WTForms:我似乎无法动态地为 QuerySelectField 提供默认值

python - factory_boy 中的一对多关系

python - SqlAlchemy实体类加入时没有属性

python - 如何声明一个函数,然后在同一行中将其分配给一个变量?

python - Django 无法在 Docker 设置中连接到 Postgres

python - SQLAlchemy:如何为列的析取创建混合属性?

Python 尝试除了 finally : Invalid syntax error (what's wrong with this code? )