尝试设置一个简单的 ODBC 项目。为了确保我在连接中命名正确的驱动程序,我想让 pyodbc 报告当前的驱动程序。
pyodbc.drivers() 是否应该报告此信息,或者在调用后是否需要执行更多操作以查看驱动程序列表?
Windows 10 VS代码 python 3.7.2 64位无虚拟环境 python freeze 报告 pyodbc==4.0.30 (以及 4.0.27)
Windows ODBC 数据源管理器(32 和 64 位)显示许多驱动程序。 MS Excel 正在与 PostgreSQL 配合使用。
import pyodbc
Print("List of ODBC drivers:")
pyodbc.drivers()
print("End of List")
仅给出终端输出:
List of ODBC drivers:
End of List
最初,
import pyodbc
导致了异常。卸载 pyodbc,重新启动,重新安装,这似乎解决了异常,但不是我想要的结果。
尝试回到 pyodbc 4.0.27 没有变化
已编辑,因为我已经整理好了:
答案是,是的,还有更多事情要做。 pyodbc.drivers() 返回一个列表 要获取驱动程序名称,我需要执行以下操作:
import pyodbc
print("List of ODBC Drivers:")
dlist = pyodbc.drivers()
for drvr in dlist:
print(drvr)
print("End of List")
我现在得到:
List of ODBC Drivers:
SQL Server
QB SQL Anywhere
Transoft 64 bit ODBC Driver
PostgreSQL ODBC Driver(ANSI)
PostgreSQL ODBC Driver(UNICODE)
End of List
这就是我需要的。
该列表仅包含 64 位驱动程序,因为我使用的是 64 位 python。
验证 /etc/odbcinst.ini 中是否有可用条目,pyodbc.drivers 读取此文件并共享输出。