Kubeflow Notebook(Python3)连接SQL Server报错:驱动类未找到
解决Kubeflow Notebook中jaydebeapi找不到jtds驱动的问题
可能的原因及对应解决方法
1. 确认jar文件实际路径是否正确
先在Notebook里执行以下代码,验证jar文件是否在你指定的路径中:
import os # 查看当前工作目录 print(os.getcwd()) # 检查目标路径下的文件 print(os.listdir('/home/jovyan/')) print(os.listdir('/user-vol-1/'))
如果输出列表里没有jtds-1.3.1.jar,说明上传路径错误。Kubeflow Notebook默认工作目录为/home/jovyan/,直接上传到根目录的话,路径应为/home/jovyan/jtds-1.3.1.jar。
2. 修改jar路径的传入格式
jaydebeapi要求jar路径以列表形式传入,调整代码如下:
import jaydebeapi driver_name = "net.sourceforge.jtds.jdbc.Driver" connection_url = f"jdbc:jtds:sqlserver://server_address" connection_properties = { "user": 'username', "password": 'password', "domain": "USER" } # 将jar路径改为列表格式 jar_path = ['/home/jovyan/jtds-1.3.1.jar'] connection = jaydebeapi.connect(driver_name, connection_url, connection_properties, jar_path)
3. 检查Java环境与jar文件完整性
- 执行
!java -version确认环境中有Java运行时,若没有,在Terminal中执行以下命令安装:sudo apt-get update && sudo apt-get install openjdk-11-jre-headless - 重新下载
jtds-1.3.1.jar,确认文件大小与官方一致后,重新上传到/home/jovyan/目录。
4. 备选方案:改用pyodbc连接SQL Server
如果jtds驱动问题无法解决,可尝试pyodbc:
- 安装依赖:
!pip install pyodbc curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list sudo apt-get update sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17 - 连接代码:
import pyodbc conn_str = ( "DRIVER={ODBC Driver 17 for SQL Server};" "SERVER=server_address;" "UID=username;" "PWD=password;" "DOMAIN=USER" ) connection = pyodbc.connect(conn_str)
内容的提问来源于stack exchange,提问作者vunh16
相关产品推荐
相关产品推荐

