我在让 PYODBC 在我的 Windows 机器上运行时遇到了一些问题。
import pyodbc
c = pyodbc.connect('DSN=netezza')
返回的错误说:
错误:('IM003','[IM003] 由于系统错误 193 无法加载指定的驱动程序 ...')
Googling this error显示这可能是 32 位与 64 位驱动程序的问题。另一篇文章建议 PYODBC 的默认管理员使用 64 位数据源管理员。事实上,我注意到当我启动 WinSQL 时,它可以毫无问题地成功连接到数据库,因为它似乎使用了不同的数据源管理员(32 位版本)。但是,我不知道如何为 PYODBC 指定 32 位数据源管理员。我明白我应该将 PYODBC 指向 %windir%\SysWOW64\odbcad32.exe 但我只是不知道我需要在哪里指定它。
更新:
import pyodbc
c = pyodbc.connect('DRIVER={NetezzaSQL};SERVER=<ip address>;PORT=<port>;DATABASE=<db>;UID=<username>;PWD=<password>')
这也产生了与上述完全相同的错误。
请您参考如下方法:
python和ODBC驱动的架构版本必须匹配。
例如,如果您安装了 32 位 Netezza 驱动程序,则需要 32 位 python。如果您有 64 位驱动程序,则需要 64 位 python。
您可以启动一个交互式 python shell 来确认您的路径中有什么(下面的屏幕截图是 64 位 python):
