Python 在PYODBC中指定ODBC管理员
我在让PYODBC在我的Windows机器上工作时遇到了一些问题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
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位驱动程序,会发生什么情况?这怎么能调和??