【问题标题】:How should I configure the a connection to MS Azure cloud database using pyodbc?我应该如何使用 pyodbc 配置与 MS Azure 云数据库的连接?
【发布时间】: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


【解决方案1】:

通常是因为32/64位版本的python环境和odbc驱动不匹配引起的。

您可以检查用于运行脚本的 python 版本和 odbc 驱动程序版本。您必须设法将它们都更改为 32 位(或均为 64 位)才能使其正常工作。

您可以从http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyodbc获取指定版本的pyodbc扩展。

【讨论】:

    猜你喜欢
    • 2020-10-20
    • 2011-09-17
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多