Попытка запросить SQL Server из django, работающего в Linux - Не удается открыть lib '/path/to/libtdsodbc.so'
У меня есть сайт Django, который работает на PostgreSQL, и я пытаюсь получить некоторые данные из SQL Server, чтобы заполнить некоторые поля формы.
Я могу подключиться к SQL Server и запросить базу данных с сервера Linux, используя Python с pyodbc и FreeTDS, и у меня сложилось впечатление, что я могу использовать ту же строку подключения в представлении django, но при попытке получить следующую ошибку:
('01000', "[01000] [unixODBC] [Driver Manager] Не удается открыть lib '/path/to/libtdsodbc.so': файл не найден (0) (SQLDriverConnect)")
Я пытался изменить права доступа к файлам и папкам, но это никуда меня не привело, как я уже говорил, я могу подключиться через Python, но не с Django.
Я также могу подключиться из командной строки в папке приложений django, используя
manage.py shell
Любая помощь с благодарностью.
ОБНОВИТЬ:
Файл определенно существует, и Django, и Python используют одни и те же файлы конфигурации ODBC и FreeTDS.
Я не использую virtualenv.
Я видел несколько ссылок на /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
когда я выполнял первоначальную настройку, но у меня сложилось впечатление, что любые проблемы, которые могут быть решены, помешали бы подключению питона, разве это не так?
ОБНОВЛЕНИЕ 2:
Я пытался использовать pymssql, и я получаю аналогичные результаты, он работает через Python, но с Django я получаю эту ImportError:
libct.so.4: невозможно открыть файл общего объекта: нет такого файла или каталога
ОБНОВЛЕНИЕ - РЕШЕНО
@bradley.ayers комментарий в PIL - libjpeg.so.8: невозможно открыть общий объектный файл: ни один такой файл или каталог не указывал мне правильное направление.
3 ответа
Извиняюсь за задержку с ответом, насколько я помню, я не смог ответить на свой собственный вопрос из-за новой учетной записи:
@ bradley.ayers комментарий в PIL - libjpeg.so.8: невозможно открыть общий объектный файл: ни один такой файл или каталог не указывал мне правильное направление.
Спасибо всем за вашу помощь
@user2725332 Извините за публикацию ответа вместо того, чтобы комментировать ваш ответ - ТАК не позволяет новичкам делать это, поэтому я полагаю, что это должен быть их предпочтительный метод для комментариев.
Вы говорите, что bradley.ayers указал вам в правильном направлении; было бы очень полезно, если бы вы могли сообщить нам решение, которое сработало для вас. Добавлял ли он каталог, содержащий ваш драйвер, в файл /etc/ld.so.conf, а затем запустил ldconfig? Это не помогло решить проблему в моем посте
Спасибо, чн
Возможно, вы изменили в своем коде путь к библиотеке "/path/to/libtdsodbc.so" в /usr/lib/odbc/libtdsodbc.so"или иным образом путь к файлу"libtdsodbc.so".