【发布时间】:2017-02-14 09:26:43
【问题描述】:
我想从 Teradata 实例中提取数据。客户端代码在 AWS EC2 实例上运行 Python2.7+。
我安装了 unixODBC 驱动程序和sudo pip install teradata,但我仍然收到以下异常:
File "/usr/local/lib/python2.7/site-packages/teradata/tdodbc.py", line 369, in determineDriver
"Available drivers: {}".format(dbType, ",".join(drivers)))
teradata.api.InterfaceError: ('DRIVER_NOT_FOUND', "No driver found for 'Teradata'. Available drivers: PostgreSQL,MySQL")
代码如下:
import sys
import teradata
# my own imports
td = TeradataClient(DEFAULT_HOSTNAME, DEFAULT_USERNAME, DEFAULT_PASSWORD)
td.select(query, outfile)
我创建的调用Teradata的TeradataClient类如下:
class TeradataClient:
def __init__(self, hostname, username, password):
self._hostname = hostname
self._username = username
self._password = password
self._udaExec = teradata.UdaExec(appName="MyApp", version="1.0", logConsole=False)
def select(self, query, outfile, sep=DEFAULT_SEPARATOR, nullstr=DEFAULT_NULL_STR):
with self._udaExec.connect(method="odbc", system=self._hostname, username=self._username,
password=self._password) as session:
print 'Connection to Teradata established'
with open(outfile,'w') as fp:
with session.cursor() as cursor:
for row in cursor.execute(query):
lineparts = [str(x if x!=None else nullstr) for x in row]
fp.write('%s\n' %sep.join(lineparts))
我该如何解决这个问题?是否需要安装其他 ODBC 驱动程序?
【问题讨论】:
-
也许博托? link
-
boto3已安装。 -
请发布尝试的连接字符串。它可能是一个非常小的语法或缺少的属性。请添加所有
import行。 -
@Parfait:发布代码。相同的代码在 Macbook 上运行良好。它只在 Linux 系统上崩溃。所以启动正确的驱动程序有一些问题。
标签: python python-2.7 amazon-ec2 odbc teradata