首页 > 解决方案 > Jupyter:无法使用 pyodbc 连接到 MS SQL Server

问题描述

我无法在 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 文件的符号链接解决方案按照此处的建议工作:无法打开 lib 'ODBC Driver 13 for SQL Server'?符号链接问题?

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

标签: pythonjupyter-notebookodbc

解决方案


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

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 包,然后libtdsodbc.so使用find. 尽管可能还有其他更简单的方法,但这很有效。


推荐阅读