Найти - Пользователи
Полная версия: Проблема с pymssql
Начало » Базы данных » Проблема с pymssql
1 2 3
DuoV
Здравствуйте,
Вообщем сделал небольшую программу работающую с базой данных MS SQL. На Linux работает на отлично. переношу на машину на WinXP SP2. Все работает, только подшаманил кодировки. Переношу на следующую машину, постарей WinXP SP1. И тут начинаеться ошибка.
выдает ошибку при импорте модуля _mssql из модуля pymssql.
ImportError: DLL load failed: не найден указанный модуль
Поставил SP2 - не помогло. Воткнул MDAC 2.6. не помогло. Вообщем теряюсь в догадках и не знаю уже что делать.
Буду рад любой помощи.
regall
DuoV
Вообщем теряюсь в догадках и не знаю уже что делать.
Ох уж этот pymssql, возился я с ним и на винде и на убунте. Мой совет - используйте pyodbc.
Андрей Светлов
Я тоже с pyodbc дело имел без забот.
Но если все же нужно разобраться с DLL load failed (знание пригодится еще не один раз) - делаем так:
1. Ошибка выбрасывается, когда провалился вызов LoadLibraryEx для нашего pyd.
2 . Это случается, если этот pyd не может погрузить нужные dll
3. Качаем Dependency Wlaker http://www.dependencywalker.com/
4. Открываем в нем наш pyd
5. Смотрим, что ему не понравилось.
regall
Андрей Светлов
Это случается, если этот pyd не может погрузить нужные dll
Скорее всего проблема в переменной окружения PATH.
Можно также сделать следующее на двух машинах (там где работает и не работает):
import os
print os.environ['PATH']
и посмотреть, в чем разница.
Андрей Светлов
regall
Андрей Светлов
Это случается, если этот pyd не может погрузить нужные dll
Скорее всего проблема в переменной окружения PATH.
Думаю, скорее всего - нет. Много раз приходилось разбираться с подобной ошибкой - и ни разу PATH был не виноват.
А там - кто знает… В любом случае проще посмотреть через depends чем гадать.
regall
Андрей Светлов
Много раз приходилось разбираться с подобной ошибкой - и ни разу PATH был не виноват.
ы, а я два раза с таким сталкивася, и в обоих случаях был боковый PATH :D
DuoV
regall
Андрей Светлов
Это случается, если этот pyd не может погрузить нужные dll
Скорее всего проблема в переменной окружения PATH.
Можно также сделать следующее на двух машинах (там где работает и не работает):
import os
print os.environ['PATH']
и посмотреть, в чем разница.
PATH проверил сразу. Проблема не в нем, Там есть путь к нужному модулю.
Попробую проверить зависимости по совету Андрея, думаю это направление в котором стоит покопать. Переписывать приложение на pyODBC изза одного компьютера неохота, но как крайняя мера придеться :).
На форуме на sourceforge.net есть сообщения с подобной моей проблемы, но без ответа.
Написал о проблеме разработчику. Ответил что если я ставил с экзешника (что я и делал), то должно все работать, и проблема в том что я ставил неверно.
Но как по другому можно ставить exe в которым надо только нажать далее и готово - не знаю.
DuoV
Проверил зависимости. Ругаеться на библиотеку ntwdblib.dll.
NTWDBLIB.DLL No DOS or PE signature found. This file is not a valid 32-bit or 64-bit Windows module.
Библиотека эта идет вместе с модулем pymssql. На другой машине та же библиотека работает на ура.
Засовывал ее в system32 - не помогло. Регистрировать ее отказываеться, дает ошибку что это не модуль для виндоуса.
Спасибо Андрею за наводку по программе - хорошая штука.
Lexander
А 2-й сервис пак накатить не пробовали? Тем более, что он исправляет некоторые ошибки работы сторонних программ (в том числе). Может быть это как раз ваш случай.
DuoV
Lexander
А 2-й сервис пак накатить не пробовали? Тем более, что он исправляет некоторые ошибки работы сторонних программ (в том числе). Может быть это как раз ваш случай.
Пробывал. Это было первое что я попробывал. Не помогло. Не понимаю что не нравиться в этой библиотеке. Разработчик молчит и больше ничего не отвечает. Чувствую что буду переделывать под pyODBC.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB