import teradata
udaExec = teradata.UdaExec (appName="testconnec",version="1.0",logConsole=False)
session = udaExec.connect(method="odbc",dsn="TeraDev",username="usename",password="password");
以上代码因错误而失败: 追溯(最近通话 最后):文件“”,文件中第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”, initOdbclibrary中的第319行 odbc = ctypes.cdll.Loadlibrary(odbcLibPath)文件“ /usr/lib64/python2.7/ctypes/init.py”,行438,在Loadlibrary中 返回self._dlltype(name)文件“ /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",logConsole=False)
session = udaExec.connect(method="odbc",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')