Как подключить Teradata с Python в Linux?

#python #odbc #teradata #pyodbc #unixodbc

#python #odbc #teradata #pyodbc #unixodbc

Вопрос:

Я пытаюсь подключить TD к Python в Linux.

Я получил эту работу в 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. Выполните следующее:
 import pyodbc
conn = pyodbc.connect('DRIVER={Teradata};DBCNAME=<HOST IP>;UID=<UID>;PWD=<UID>;QUIETMODE=YES;')
  

pyodbc.Ошибка: (‘IM002’, ‘[IM002] [unixODBC] [Диспетчер драйверов] Имя источника данных не найдено, и драйвер по умолчанию не указан (0) (SQLDriverConnect)’)

Я пропустил какой-либо шаг настройки после установки?

Окружающая среда:

Python 2.6.6 (r266: 84292, октябрь 12 2012, 14:23:48) [ GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] на linux2

Комментарии:

1. Это может быть хорошим руководством для проверки правильности ваших настроек

Ответ №1:

Строка, которую вы передаете в качестве ДРАЙВЕРА, должна

a) имя драйвера в вашем файле odbcinst.ini или

б) полный путь к общему объекту драйвера ODBC.

Поскольку вы используете первый метод, я бы посоветовал вам запустить odbcinst -j , чтобы узнать, где находится ваш файл odbcinst.ini, и проверить, определены ли какие-либо драйверы.

Разделы драйверов начинаются с [MYDRIVERNAME], поэтому у вас должен быть раздел, начинающийся с [Teradata], и он должен содержать пару ключевое слово / значение что-то вроде driver = /path/to/teradata/driver/shared_object . Если вы определили драйвер [Teradata], проверьте, существует ли общий объект, на который указано ключевое слово «driver», доступен для чтения / исполнения вами и не имеет неразрешенных зависимостей (запустите ldd на нем).