尝试从 pyodbc.drivers() 获取列表,但它没有产生任何结果,为什么?

问题描述 投票:0回答:1

尝试设置一个简单的 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。

python pyodbc
1个回答
0
投票

验证 /etc/odbcinst.ini 中是否有可用条目,pyodbc.drivers 读取此文件并共享输出。

© www.soinside.com 2019 - 2024. All rights reserved.