我正在尝试在Linux中将TD与Python连接。
我在Windows上使用它:
import pyodbc
conn = pyodbc.connect('DRIVER={Teradata};DBCNAME=<HOST IP>;UID=<UID>;PWD=<UID>;QUIETMODE=YES;')
cursor = conn.cursor()
sql = 'select * from table_name'
cursor.execute(sql)
rows = cursor.fetchall()
conn.close()
print rows
我在Linux上执行的步骤:
import pyodbc
conn = pyodbc.connect('DRIVER={Teradata};DBCNAME=<HOST IP>;UID=<UID>;PWD=<UID>;QUIETMODE=YES;')
pyodbc.Error:(&#39; IM002&#39;,&#39; [IM002] [unixODBC] [驱动程序管理器]找不到数据源名称,并且未指定默认驱动程序(0)(SQLDriverConnect)&# 39)
我在安装后错过了任何配置步骤吗?
环境:
Python 2.6.6(r266:84292,2012年10月12日,14:23:48) [gCC 4.4.6 20120305(Red Hat 4.4.6-4)] on linux2
答案 0 :(得分:2)
您作为DRIVER需要传递的字符串
a)odbcinst.ini文件中的驱动程序名称或
b)ODBC驱动程序共享对象的完整路径。
当您使用第一种方法时,我建议您运行odbcinst -j
以查找odbcinst.ini文件所在的位置,并检查您是否已定义任何驱动程序。
驱动程序部分以[MYDRIVERNAME]开头,因此你应该有一个以[Teradata]开头的部分,它应该包含一个关键字/值对,例如driver = / path / to / teradata / driver / shared_object。如果已定义[Teradata]驱动程序,则检查指向&#34;驱动程序&#34;的共享对象。关键字存在,您可读/可执行,并且没有未解析的依赖项(在其上运行ldd)。