无法使用Python连接到Teradata

无法使用Python连接到Teradata,python,teradata,Python,Teradata,以上代码失败,出现错误: 回溯(最近的呼叫) 最后):文件“”中的第1行 “/home/hadoop/.local/lib/python2.7/site packages/teradata/udaexec.py”, 第183行,连接中 **args)文件“/home/hadoop/.local/lib/python2.7/site packages/teradata/tdodbc.py”, 第421行,在init init(odbcLibPath)文件“/home/hadoop/.local/l

以上代码失败,出现错误: 回溯(最近的呼叫) 最后):文件“”中的第1行 “/home/hadoop/.local/lib/python2.7/site packages/teradata/udaexec.py”, 第183行,连接中 **args)文件“/home/hadoop/.local/lib/python2.7/site packages/teradata/tdodbc.py”, 第421行,在init init(odbcLibPath)文件“/home/hadoop/.local/lib/python2.7/site packages/teradata/tdodbc.py”, 第366行,在init中 initOdbcLibrary(odbcLibPath)文件“/home/hadoop/.local/lib/python2.7/site packages/teradata/tdodbc.py”, 第319行,在initOdbcLibrary中 odbc=ctypes.cdll.LoadLibrary(odbcLibPath)文件“/usr/lib64/python2.7/ctypes/init.py”,第438行,在LoadLibrary中 返回self.\u dlltype(name)文件“/usr/lib64/python2.7/ctypes/init.py”,第360行,在init self.\u handle=\u dlopen(self.\u name,mode)OSError:libodbc.so:无法打开共享对象文件:没有这样的文件或目录`

***调整上述环境变量后****

export ODBCINI=/opt/teradata/client/16.20/odbc_64/odbc.ini
export ODBCINST=/opt/teradata/client/16.20/odbc_64/odbcinst.ini
export LD_LIBRARY_PATH=/opt/teradata/client/16.20/odbc_64/lib
导入teradata
udaExec=teradata.udaExec(odbcLibPath=“/opt/teradata/client/16.20/odbc_64/lib/libodbc.so”,appName=“testconnec”,version=“1.0”,logConsole=False)
session=udaExec.connect(method=“odbc”,dsn=“TeraDev”,username=“user”,password=“password”,driver=“Teradata数据库odbc驱动程序16.20”);
错误:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/home/hadoop/.local/lib/python2.7/site packages/teradata/udaexec.py”,第183行,在connect中
**args)
文件“/home/hadoop/.local/lib/python2.7/site packages/teradata/tdodbc.py”,第454行,在__
检查状态(rc,hDbc=self.hDbc,method=“SQLDriverConnectW”)
文件“/home/hadoop/.local/lib/python2.7/site packages/teradata/tdodbc.py”,第231行,处于检查状态
raise DATABASERROR(i[2],u“[{}]{}”。格式(i[0],msg),i[0])
teradata.api.DatabaseError:(0,u'[IM002][DataDirect][ODBC lib]未找到数据源名称,且未指定默认驱动程序')

因此无法找到ODBC驱动程序管理器。您是否安装了必备的Teradata ODBC驱动程序?搜索路径(LD_LIBRARY_path)中是否包含驱动程序的目录?请注意,包“teradata”是不受支持的,因此我始终建议使用“TeradaSQL”-“teradata”利用ODBC,而“TeradaSQL”具有本机连接。@Fred我们也需要安装teradata客户端吗?不确定您的意思是什么“Teradata客户端”。正如@hhoeck所指出的,Teradasaql包是首选,但需要64位Python 3.4或更高版本。@Fred我们已经安装了驱动程序,在尝试连接时出现此错误:Teradata.api.DatabaseError:(0,u'[IM002\u42fe\u7fdc][DataDirect][ODBC lib]找不到驱动程序管理器消息文件。请检查odbc.ini中InstallDir的值。”
export ODBCINI=/opt/teradata/client/16.20/odbc_64/odbc.ini
export ODBCINST=/opt/teradata/client/16.20/odbc_64/odbcinst.ini
export LD_LIBRARY_PATH=/opt/teradata/client/16.20/odbc_64/lib
import teradata



udaExec=teradata.UdaExec(odbcLibPath="/opt/teradata/client/16.20/odbc_64/lib/libodbc.so",appName="testconnec", version="1.0",logConsole=False)

session = udaExec.connect(method="odbc", dsn="TeraDev",username="user", password="password", driver="Teradata Database ODBC Driver 16.20");


Error:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/hadoop/.local/lib/python2.7/site-packages/teradata/udaexec.py", line 183, in connect
    **args))
  File "/home/hadoop/.local/lib/python2.7/site-packages/teradata/tdodbc.py", line 454, in __init__
    checkStatus(rc, hDbc=self.hDbc, method="SQLDriverConnectW")
  File "/home/hadoop/.local/lib/python2.7/site-packages/teradata/tdodbc.py", line 231, in checkStatus
    raise DatabaseError(i[2], u"[{}] {}".format(i[0], msg), i[0])
teradata.api.DatabaseError: (0, u'[IM002] [DataDirect][ODBC lib] Data source name not found and no default driver specified')