Python SQLAlchemy:未找到数据源名称且未指定默认驱动程序

时间:2016-12-27 11:09:55

标签: python sql-server sqlalchemy

使用Python:使用pyodbc连接到SQL Server时,一切正常,但当我切换到sqlalchemy时,连接失败,给我错误消息:

('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

我的代码:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=servername;DATABASE=dbname;UID=username;PWD=password')
engine = sqlalchemy.create_engine("mssql+pyodbc://username:password@servername/dbname")

我在代码中找不到错误,并且不明白为什么第一个选项有效,但第二个没有。

非常感谢帮助!

3 个答案:

答案 0 :(得分:7)

也遇到这个问题,在我的连接路径的末尾附加一个驱动程序查询字符串:

"mssql+pyodbc://" + uname + ":" + pword + "@" + server + "/" + dbname + "?driver=SQL+Server"

答案 1 :(得分:4)

它使用pymssql而不是pyodbc。

使用pip安装pymssql,然后将代码更改为:

engine = sqlalchemy.create_engine("mssql+pymssql://username:password@servername/dbname")

答案 2 :(得分:1)

很晚了,但最近自己也遇到了同样的问题。原来是最新的 SQLAlchemy 版本有问题。不得不将我的版本从 1.4.17 回滚到 1.4.12(不确定中间版本,只使用我知道有效的版本)。

pip install sqlalchemy==1.4.12