Python 在PYODBC中指定ODBC管理员

Python 在PYODBC中指定ODBC管理员,python,sql,odbc,pyodbc,Python,Sql,Odbc,Pyodbc,我在让PYODBC在我的Windows机器上工作时遇到了一些问题 import pyodbc c = pyodbc.connect('DSN=netezza') 返回的错误表示: 错误:“IM003”,“[IM003]由于系统错误193,无法加载指定的驱动程序…” 显示32位与64位驱动程序可能存在问题。另一篇文章建议PYODBC的默认管理员使用64位数据源管理员。事实上,我注意到,当我启动WinSQL时,它可以成功地连接到数据库,而不会出现任何问题,因为它似乎使用的是另一个数据源管理员—32

我在让PYODBC在我的Windows机器上工作时遇到了一些问题

import pyodbc
c = pyodbc.connect('DSN=netezza')
返回的错误表示:

错误:“IM003”,“[IM003]由于系统错误193,无法加载指定的驱动程序…”

显示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>')
这也产生了与上述完全相同的错误。

尝试以下方法:

c = pyodbc.connect('DRIVER={SQL Server};DSN=netezza')
或者,您可以使用此表单:

c = pyodbc.connect('DRIVER={SQL Server};SERVER=yourserver.com;DATABASE=netezza;UID=youruser;PWD=yourpassword')
我希望这有帮助

试试这个:

c = pyodbc.connect('DRIVER={SQL Server};DSN=netezza')
或者,您可以使用此表单:

c = pyodbc.connect('DRIVER={SQL Server};SERVER=yourserver.com;DATABASE=netezza;UID=youruser;PWD=yourpassword')

我希望这有帮助

python的体系结构版本和ODBC驱动程序必须匹配

例如,如果安装了32位Netezza驱动程序,则需要32位python。如果您有64位驱动程序,则需要64位python

您可以启动一个交互式python shell来确认路径中的内容。下面的屏幕截图是64位python:


python的体系结构版本和ODBC驱动程序必须匹配

例如,如果安装了32位Netezza驱动程序,则需要32位python。如果您有64位驱动程序,则需要64位python

您可以启动一个交互式python shell来确认路径中的内容。下面的屏幕截图是64位python:


不幸的是,这没有帮助。错误仍然是一样的。你能解释一下这样做会改变什么的逻辑吗?您是否建议指定驱动程序会以某种方式改变数据源管理员使用的32位与64位?Netezza是一个数据仓库设备,无法通过SQL Server的ODBC驱动程序访问。啊哈,我知道我以前在什么地方听说过Netezza。。。我以为他只是在引用一个叫Netezza的数据库。是否可能存在用于设备元数据的数据库?不幸的是,这没有帮助。错误仍然是一样的。你能解释一下这样做会改变什么的逻辑吗?您是否建议指定驱动程序会以某种方式改变数据源管理员使用的32位与64位?Netezza是一个数据仓库设备,无法通过SQL Server的ODBC驱动程序访问。啊哈,我知道我以前在什么地方听说过Netezza。。。我以为他只是在引用一个叫Netezza的数据库。是否可能存在用于设备元数据的数据库?是否使用32位或64位Python?是否使用32位或64位Python?但本文中的注释:。建议可以将32位ODBC管理员odbcad32.exe与64位python安装一起使用,我必须检查一下,但我相信我有64位python。我并不想对这一点进行辩论,但我不明白为什么64位Python与32位驱动程序不兼容。我可以理解32位Python与64位驱动程序不兼容。那么,有没有办法指定驱动程序??如果同时安装了32位驱动程序和64位驱动程序,会发生什么情况?这怎么能调和呢?但这篇文章中的评论:。建议可以将32位ODBC管理员odbcad32.exe与64位python安装一起使用,我必须检查一下,但我相信我有64位python。我并不想对这一点进行辩论,但我不明白为什么64位Python与32位驱动程序不兼容。我可以理解32位Python与64位驱动程序不兼容。那么,有没有办法指定驱动程序??如果同时安装了32位驱动程序和64位驱动程序,会发生什么情况?这怎么能调和??