【发布时间】:2016-03-08 22:28:33
【问题描述】:
我正在设置一个 python 脚本来连接到 azure 云数据库的一个实例,并且在我使用 IDLE 与尝试从脚本执行连接时看到了连接的差异。例如,当我在 IDLE 中执行以下操作时:
>>> import pyodbc
>>> conn = pyodbc.connect('DRIVER={SQL Server};SERVER=<my.database.host.info>,1433', user='<my_username@mydatabase', password='password', database='database')
我能够成功连接并针对数据库中的一个表执行基本查询。
但是,当我在脚本中使用相同的连接字符串(从 IDLE 控制台复制)时,我收到以下错误:
pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
【问题讨论】:
-
你确定你的IDLE和脚本解释器是同一个python吗?有没有可能你的 IDLE 是 python 2,而你的脚本解释器是 python 3?
-
如果@JackZeng 的建议不起作用,您可能还想从您调用脚本的环境与IDLE 环境中检查您的Python 路径。您是否在其中一个中使用了 virtualenv?
-
是的,我从 IDLE 和我的脚本中检查了 sys.version。我都在本地运行。
-
在什么情况和环境下,你处理这个脚本失败了?
-
这很有趣,您是使用 Microsoft ODBC 驱动程序和 pyodbc 还是其他一些 ODBC 驱动程序?
标签: python azure azure-sql-database pyodbc