Форум сайта python.su
Здравствуйте,
Вообщем сделал небольшую программу работающую с базой данных MS SQL. На Linux работает на отлично. переношу на машину на WinXP SP2. Все работает, только подшаманил кодировки. Переношу на следующую машину, постарей WinXP SP1. И тут начинаеться ошибка.
выдает ошибку при импорте модуля _mssql из модуля pymssql.
ImportError: DLL load failed: не найден указанный модуль
Поставил SP2 - не помогло. Воткнул MDAC 2.6. не помогло. Вообщем теряюсь в догадках и не знаю уже что делать.
Буду рад любой помощи.
Отредактировано (Дек. 9, 2009 07:30:45)
Офлайн
DuoVОх уж этот pymssql, возился я с ним и на винде и на убунте. Мой совет - используйте pyodbc.
Вообщем теряюсь в догадках и не знаю уже что делать.
Офлайн
Я тоже с pyodbc дело имел без забот.
Но если все же нужно разобраться с DLL load failed (знание пригодится еще не один раз) - делаем так:
1. Ошибка выбрасывается, когда провалился вызов LoadLibraryEx для нашего pyd.
2 . Это случается, если этот pyd не может погрузить нужные dll
3. Качаем Dependency Wlaker http://www.dependencywalker.com/
4. Открываем в нем наш pyd
5. Смотрим, что ему не понравилось.
Офлайн
Андрей СветловСкорее всего проблема в переменной окружения PATH.
Это случается, если этот pyd не может погрузить нужные dll
import os
print os.environ['PATH']
Офлайн
regallДумаю, скорее всего - нет. Много раз приходилось разбираться с подобной ошибкой - и ни разу PATH был не виноват.Андрей СветловСкорее всего проблема в переменной окружения PATH.
Это случается, если этот pyd не может погрузить нужные dll
Офлайн
Андрей Светловы, а я два раза с таким сталкивася, и в обоих случаях был боковый PATH :D
Много раз приходилось разбираться с подобной ошибкой - и ни разу PATH был не виноват.
Офлайн
regallPATH проверил сразу. Проблема не в нем, Там есть путь к нужному модулю.Андрей СветловСкорее всего проблема в переменной окружения PATH.
Это случается, если этот pyd не может погрузить нужные dll
Можно также сделать следующее на двух машинах (там где работает и не работает):и посмотреть, в чем разница.import os
print os.environ['PATH']
Офлайн
Проверил зависимости. Ругаеться на библиотеку 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 - не помогло. Регистрировать ее отказываеться, дает ошибку что это не модуль для виндоуса.
Спасибо Андрею за наводку по программе - хорошая штука.
Офлайн
А 2-й сервис пак накатить не пробовали? Тем более, что он исправляет некоторые ошибки работы сторонних программ (в том числе). Может быть это как раз ваш случай.
Офлайн
LexanderПробывал. Это было первое что я попробывал. Не помогло. Не понимаю что не нравиться в этой библиотеке. Разработчик молчит и больше ничего не отвечает. Чувствую что буду переделывать под pyODBC.
А 2-й сервис пак накатить не пробовали? Тем более, что он исправляет некоторые ошибки работы сторонних программ (в том числе). Может быть это как раз ваш случай.
Офлайн