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