Я использую (Anaconda 3) Python 3.6.3 и установил модуль Python Teradata из https://pypi.python.org/pypi/teradata
Я также создал источник данных ODBC в своей системе и могу использовать его дляуспешно войдите (используя Teradata SQL Assistant) в систему Teradata (на другом сервере).Версия драйвера: 13.00.00.09
Я написал небольшой тестовый код, который не работает с проблемой подключения ODBC:
import Teradata
import pandas as pd
import sys
print("attempting TD connection")
udaExec = teradata.UdaExec(appName="just_td_test", version="1.0", logConsole=False)
#
with udaExec.connect(method="odbc",system="abc", username="aaaaa",password="xxxxx", driver="Teradata") as connect:
print("connection done. querying now...")
query = "select top 10 tablename from dbc.tables;"
df = pd.read_sql(query,connect)
print(df.head())
connect.close()
Сообщения об ошибках:
attempting TD connection
Traceback (most recent call last):
File "td.py", line 16, in <module>
with udaExec.connect(method="odbc",system="abc", username="aaaaa",password="xxxxx", driver="Teradata") as connect:
File "C:\teradata-15.10.0.21.tar\teradata-15.10.0.21\teradata\udaexec.py", line 183, in connect
**args))
File "C:\teradata-15.10.0.21.tar\teradata-15.10.0.21\teradata\tdodbc.py", line 450, in __init__
SQL_NTS, None, 0, None, 0)
OSError: exception: access violation writing 0x0000000000000078
Exception ignored in: <bound method OdbcConnection.__del__ of OdbcConnection(sessionno=0)>
Traceback (most recent call last):
File "C:\teradata-15.10.0.21.tar\teradata-15.10.0.21\teradata\tdodbc.py", line 538, in __del__
self.close()
File "C:\teradata-15.10.0.21.tar\teradata-15.10.0.21\teradata\tdodbc.py", line 513, in close
connections.remove(self)
ValueError: list.remove(x): x not in list
ItsЯсно, что ошибка с соединением ODBC, но сообщение об ошибке не ясно.Версия драйвера Teradata ODBC - 13, а pypi предоставляет модуль Python Teradata версии 15. Является ли это причиной ошибки?