Почему macports pyodbc не может найти имя источника данных или драйвер на MacOSX (Snow Leopard)? - PullRequest
2 голосов
/ 11 июня 2011

Я установил пакет портов Mac для py27-odbc на Snow Leopard. Поскольку OSX больше не предоставляет приложение администратора ODBC, я установил менеджер ODBC OpenLink. После установки я создал DSN для своей удаленной базы данных и проверил, работает ли конфигурация с помощью утилиты iodbctest. Затем я пытаюсь подключиться к базе данных, используя pyodbc:

import pyodbc
cnxn = pyodbc.connect('DSN=my-dsn-name;UID=joe;PWD=secret')

и я получаю следующую прекрасную ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name
not found, and no default driver specified (0) (SQLDriverConnectW)')

Почему pyodbc не может найти драйверы ODBC и / или мои конфигурации DSN?

Обновлено (поскольку я пока не могу ответить на свой вопрос)

Похоже, что система хранит данные конфигурации ODBC в / Library / ODBC, но порты Mac хранят конфигурацию в / opt / local / etc. Это объясняет, почему iodbctest работает, но pyodbc задыхается. Кажется, что самое простое исправление - просто символическая ссылка из местоположения портов Mac в системное местоположение, так что общий набор файлов конфигурации будет работать для любого инструмента, независимо от того, где он ищет эту информацию:

sudo ln -s /Library/ODBC/odbc.ini /opt/local/etc/odbc.ini
sudo ln -s /Library/ODBC/odbcinst.ini /opt/local/etc/odbcinst.ini
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...