Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 9, 2009 07:29:59

DuoV
От:
Зарегистрирован: 2009-12-01
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с pymssql

Здравствуйте,
Вообщем сделал небольшую программу работающую с базой данных MS SQL. На Linux работает на отлично. переношу на машину на WinXP SP2. Все работает, только подшаманил кодировки. Переношу на следующую машину, постарей WinXP SP1. И тут начинаеться ошибка.
выдает ошибку при импорте модуля _mssql из модуля pymssql.
ImportError: DLL load failed: не найден указанный модуль
Поставил SP2 - не помогло. Воткнул MDAC 2.6. не помогло. Вообщем теряюсь в догадках и не знаю уже что делать.
Буду рад любой помощи.



Отредактировано (Дек. 9, 2009 07:30:45)

Офлайн

#2 Дек. 9, 2009 10:00:45

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Проблема с pymssql

DuoV
Вообщем теряюсь в догадках и не знаю уже что делать.
Ох уж этот pymssql, возился я с ним и на винде и на убунте. Мой совет - используйте pyodbc.



Офлайн

#3 Дек. 9, 2009 10:17:12

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Проблема с pymssql

Я тоже с pyodbc дело имел без забот.
Но если все же нужно разобраться с DLL load failed (знание пригодится еще не один раз) - делаем так:
1. Ошибка выбрасывается, когда провалился вызов LoadLibraryEx для нашего pyd.
2 . Это случается, если этот pyd не может погрузить нужные dll
3. Качаем Dependency Wlaker http://www.dependencywalker.com/
4. Открываем в нем наш pyd
5. Смотрим, что ему не понравилось.



Офлайн

#4 Дек. 9, 2009 11:09:36

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Проблема с pymssql

Андрей Светлов
Это случается, если этот pyd не может погрузить нужные dll
Скорее всего проблема в переменной окружения PATH.
Можно также сделать следующее на двух машинах (там где работает и не работает):
import os
print os.environ['PATH']
и посмотреть, в чем разница.



Офлайн

#5 Дек. 9, 2009 11:22:13

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Проблема с pymssql

regall
Андрей Светлов
Это случается, если этот pyd не может погрузить нужные dll
Скорее всего проблема в переменной окружения PATH.
Думаю, скорее всего - нет. Много раз приходилось разбираться с подобной ошибкой - и ни разу PATH был не виноват.
А там - кто знает… В любом случае проще посмотреть через depends чем гадать.



Офлайн

#6 Дек. 9, 2009 11:52:58

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Проблема с pymssql

Андрей Светлов
Много раз приходилось разбираться с подобной ошибкой - и ни разу PATH был не виноват.
ы, а я два раза с таким сталкивася, и в обоих случаях был боковый PATH :D



Офлайн

#7 Дек. 9, 2009 13:31:18

DuoV
От:
Зарегистрирован: 2009-12-01
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с pymssql

regall
Андрей Светлов
Это случается, если этот pyd не может погрузить нужные dll
Скорее всего проблема в переменной окружения PATH.
Можно также сделать следующее на двух машинах (там где работает и не работает):
import os
print os.environ['PATH']
и посмотреть, в чем разница.
PATH проверил сразу. Проблема не в нем, Там есть путь к нужному модулю.
Попробую проверить зависимости по совету Андрея, думаю это направление в котором стоит покопать. Переписывать приложение на pyODBC изза одного компьютера неохота, но как крайняя мера придеться :).
На форуме на sourceforge.net есть сообщения с подобной моей проблемы, но без ответа.
Написал о проблеме разработчику. Ответил что если я ставил с экзешника (что я и делал), то должно все работать, и проблема в том что я ставил неверно.
Но как по другому можно ставить exe в которым надо только нажать далее и готово - не знаю.



Офлайн

#8 Дек. 10, 2009 00:48:23

DuoV
От:
Зарегистрирован: 2009-12-01
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с pymssql

Проверил зависимости. Ругаеться на библиотеку 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 - не помогло. Регистрировать ее отказываеться, дает ошибку что это не модуль для виндоуса.
Спасибо Андрею за наводку по программе - хорошая штука.



Офлайн

#9 Дек. 10, 2009 13:03:29

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Проблема с pymssql

А 2-й сервис пак накатить не пробовали? Тем более, что он исправляет некоторые ошибки работы сторонних программ (в том числе). Может быть это как раз ваш случай.



Офлайн

#10 Дек. 10, 2009 13:11:19

DuoV
От:
Зарегистрирован: 2009-12-01
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с pymssql

Lexander
А 2-й сервис пак накатить не пробовали? Тем более, что он исправляет некоторые ошибки работы сторонних программ (в том числе). Может быть это как раз ваш случай.
Пробывал. Это было первое что я попробывал. Не помогло. Не понимаю что не нравиться в этой библиотеке. Разработчик молчит и больше ничего не отвечает. Чувствую что буду переделывать под pyODBC.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version