使用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")
我在代码中找不到错误,并且不明白为什么第一个选项有效,但第二个没有。
非常感谢帮助!
答案 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