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:

    udaExec = teradata.UdaExec (appName="HelloWorld", version="1.0",
        logConsole=False, odbcLibPath="C:\\Windows\\SysWOW64\\odbc32.dll"
    
    完全相同的错误

  • 我试图编辑Teradata包代码: 在tdodbc.py中,我改变了:在uuuuuuu init_uuuuuuuuuuuu(参数)中,我试图给他正确的路径: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
    
    但我不知道如何改变这个odbc

  • 在udaexec.py中,我尝试在connect函数中将此路径分配给类似以下内容的部分中的odbLibPath变量:

    elif method.lower() == METHOD_ODBC:
                    conn = UdaExecConnection(
                        self, tdodbc.connect(queryBands=self.queryBands,
                                             odbcLibPath=self.odbcLibPath)
    
  • 你觉得怎么样?有没有办法不在64位ODBC Administrator中安装驱动程序就可以工作?我还试着让Girrafez包工作起来。在安装脚本中,我还需要更改路径,但后来我遇到了其他问题,所以我宁愿使用teradata软件包。
    谢谢

    您能在Python之外使用ODBC成功连接到Teradata吗?