使用pyodbc连接SQL Server失败:无法打开指定驱动库文件
pyodbc连接SQL Server驱动加载失败问题
问题现象
执行以下Python代码连接SQL Server时:
pyodbc.connect(f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={host};DATABASE={db};UID={user};PWD={pwd};TrustServerCertificate=yes;')
报错:Can't open lib '/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.1.1’
但使用isql命令却能正常连接:
isql -v -k “DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={host};DATABASE={db};UID={user};PWD={pwd};TrustServerCertificate=yes;”
已尝试操作
- 将SQL Server驱动路径添加到
LD_LIBRARY环境变量中
环境与配置信息
系统与依赖版本
- RHEL 8
- Python 3.9.10
- pyodbc==4.0.39
命令输出
- 执行
odbcinst -q -d的输出:
[ODBC Driver 18 for SQL Server] [ODBC Driver 17 for SQL Server]
- 执行
odbcinst -j的输出:
$ odbcinst -j unixODBC 2.3.7 DRIVERS. . . .......: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES /etc/ODBCDataSources SQLULEN Size........:8 SQLLEN Size.........:8 SQLSETPOSIROW Size.: 8
/etc/odbcinst.ini文件内容:
[ODBC Driver 18 for SQL Server] Description=Microsoft ODBC Driver 18 for SQL Server Driver=/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.1.1 UsageCount=1 [ODBC Driver 17 for SQL Server] Description=Microsoft ODBC Driver 17 for SQL Server Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.6.so.1.1 UsageCount=1
- Python补充信息:
import pyodbc pyodbc.drivers() # ['ODBC Driver 18 for SQL Server', 'ODBC Driver 17 for SQL Server'] pyodbc.dataSources() #{}
内容的提问来源于stack exchange,提问作者nolio
相关产品推荐
相关产品推荐

