Python-64位系统和32位ODBC管理员上的Teradata包
我在运行此代码时遇到问题:Python-64位系统和32位ODBC管理员上的Teradata包,python,windows,odbc,teradata,Python,Windows,Odbc,Teradata,我在运行此代码时遇到问题: import teradata udaExec = teradata.UdaExec (appName="HelloWorld", version="1.0", logConsole=False") session = udaExec.connect(method="odbc", system="KHD_DEV", username="User", password="Pass"); for row in session.execute("*so
import teradata
udaExec = teradata.UdaExec (appName="HelloWorld", version="1.0",
logConsole=False")
session = udaExec.connect(method="odbc", system="KHD_DEV",
username="User", password="Pass");
for row in session.execute("*some valid query*"):
print(row)
它给了我一个错误:
找不到“Teradata”的驱动程序。可用驱动程序:驱动程序列表。
我认为问题来自于使用64位系统,而我合适的ODBC驱动程序在32位ODBC管理员中。列出的驱动程序来自64位版本的ODBC Administrator 我认为Teradata可以看到我的系统,并在C:\Windows\System32\odbc32.dll中检查驱动程序,我在其中安装了64位版本。但是32位版本的路径是:C:\Windows\SysWOW64\odbc32.dll。
我尝试了几种不同的方法,但没有一种有效:
udaExec = teradata.UdaExec (appName="HelloWorld", version="1.0",
logConsole=False, odbcLibPath="C:\\Windows\\SysWOW64\\odbc32.dll"
完全相同的错误def initOdbcLibrary(odbcLibPath=None):
"""Initialize the ODBC Library."""
global odbc
if odbc is None:
if osType == "Windows":
odbc = ctypes.windll.odbc32
但我不知道如何改变这个odbcelif method.lower() == METHOD_ODBC:
conn = UdaExecConnection(
self, tdodbc.connect(queryBands=self.queryBands,
odbcLibPath=self.odbcLibPath)
谢谢您能在Python之外使用ODBC成功连接到Teradata吗?