首页 > 解决方案 > 无法使用 Python 连接到 Teradata

问题描述

import teradata
udaExec = teradata.UdaExec (appName="testconnec", version="1.0",logConsole=False) 
session = udaExec.connect(method="odbc", dsn="TeraDev",username="usename", password="password");

上面的代码失败并出现错误: Traceback(最近一次调用最后一次):文件“”,第 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。_dlltype(名称)文件“/usr/lib64/python2.7/ctypes/init .py",第 360 行,在init self._handle = _dlopen(self._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

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

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')

标签: pythonteradata

解决方案


推荐阅读