python - 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'?符号链接问题?
直接指定驱动程序如下面的答案所示是有效的。
解决方案
我最终不得不像这样直接指定驱动程序:
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
. 尽管可能还有其他更简单的方法,但这很有效。
推荐阅读
- arduino - SIM800L 与螺旋天线连接和重新连接仍然没有接收到任何信号
- javascript - 在没有被捕获的链中多次调用拒绝
- python - 如何在多类数据集上将 SGD(如 SVM 内核逼近)与特征选择相结合
- spring-boot - 创建 bean 'jpaVendorAdapter' 时出错,无法实例化 [jpa.JpaVendorAdapter],NoClassDefFoundError: SslSocketFactory
- typescript - 是否可以将部分通配符分配给打字稿中的类型?
- c# - 如何创建用作 Web API 的属性?
- c++ - 从 MSVC 2013 (C++11) 迁移到 MSVC 2019 (C++17) 时,std::vector::insert() 停止工作
- html - 在导航栏中创建活动状态箭头
- python - 如何在numpy数组中应用条件语句?
- java - 我想从 Firebase 存储中删除特定用户数据文件夹