【问题标题】:Jupyter: can't connect to MS SQL Server with pyodbcJupyter:无法使用 pyodbc 连接到 MS SQL Server
【发布时间】:2019-08-09 20:08:32
【问题描述】:

我无法在 Jupyter 笔记本中连接到 MS SQL Server:

代码:

import pyodbc
pyodbc.drivers()

输出:

[]

什么都没有!

连接字符串:

db_connection = pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};'
                               'Server=Server IP;'
                               'Database=DB_Main;'
                               'UID=DB_User;'
                               'PWD=secrets')

我使用的每个可能的驱动程序字符串都会得到相同的基本信息:

错误: ('01000', "[01000] [unixODBC][Driver Manager]无法打开 lib 'ODBC Driver 17 for SQL Server' : 找不到文件 (0) (SQLDriverConnect)")

由于pyodbc.drivers() 没有显示任何内容,因此安装似乎很糟糕。

更新: 我无法让 INI 文件的符号链接解决方案按照此处的建议工作:Can't open lib 'ODBC Driver 13 for SQL Server'? Sym linking issue?

直接指定驱动程序,如下面的答案所示。

【问题讨论】:

  • 您找到解决方案了吗?我也遇到了同样的问题。
  • @EvandroPomatti 请参阅下面的答案。我尝试了所有这些东西——符号链接等。诉诸于直接指定驱动程序——请参阅下面的答案。我不记得我在哪里找到了这个解决方案。

标签: python jupyter-notebook odbc


【解决方案1】:

我最终不得不像这样直接指定驱动程序:

driver = '/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so'
ip = "10.10.10.1"
db_connection = pyodbc.connect(
    driver = driver,
    Server = ip,
    Port = "49189",
    Database = "project_db",
    UID = "db_user",
    PWD = "secrets" )

在服务器上安装了 TDS 和 ODBC 包,然后使用 find 搜索 libtdsodbc.so 驱动程序。尽管可能还有其他更简单的方法,但这很有效。

【讨论】:

【解决方案2】:

尝试安装 ODBC 驱动程序 (13/17),您的 pyodbc.drivers() 应该返回驱动程序信息,然后您应该可以连接。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 2020-02-09
  • 2020-10-04
相关资源
最近更新 更多