如何在Linux中将Teradata与Python连接?

时间:2014-06-18 10:53:20

标签: python odbc teradata pyodbc unixodbc

我正在尝试在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上执行的步骤:

  1. 安装pyodbc
  2. 安装TeraGSS,tdicu,cliv2,piom,tdodbc
  3. 运行以下命令:
  4. 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

1 个答案:

答案 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)。