关于odbc:如何在Linux中将Teradata与Python连接?

How to connect Teradata with Python in Linux?

我正在尝试在Linux中将td与python连接起来。

我在Windows上做了这个工作:

1
2
3
4
5
6
7
8
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上执行此操作的步骤:

  • 安装pyodbc
  • 安装teragss、tdicu、cliv2、piom、tddodbc
  • 运行以下程序:
  • 1
    2
    import pyodbc
    conn = pyodbc.connect('DRIVER={Teradata};DBCNAME=<HOST IP>;UID=<UID>;PWD=<UID>;QUIETMODE=YES;')

    pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')

    安装后是否缺少任何配置步骤?

    环境:

    python 2.6.6(r266:84292,2012年10月12日,14:23:48)【GCC 4.4.6 20120305(Red Hat 4.4.6-4)】关于Linux2


    作为驱动程序传递的字符串需要

    a)odbcinst.ini文件中的驱动程序名称,或

    b)ODBC驱动程序共享对象的完整路径。

    当您使用第一种方法时,我建议您运行odbcinst -j,找出odbcinst.ini文件的位置,并检查是否定义了任何驱动程序。

    驱动程序部分以[mydrivername]开头,因此您应该有一个以[teradata]开头的部分,它应该包含一个关键字/值对,类似driver=/path/to/teradata/driver/shared_对象。如果您定义了一个[teradata]驱动程序,那么请检查用"driver"关键字指向的共享对象是否存在、是否可读/可执行以及是否没有未解析的依赖项(对其运行ldd)。