импорт cx_oracle завершается неудачно, когда скрипт python запускается как служба win32 - PullRequest
1 голос
/ 13 мая 2011

Я написал скрипт на python, который должен запускаться как служба Windows, создав подкласс win32serviceutil.ServiceFramework.В скрипте используется модуль cx_oracle.

Когда я запускаю сервис в режиме отладки (python DLOGprod.py debug), все работает нормально.Но когда я пытаюсь запустить службу (python DLOGprod.py start), импорт модуля cx_oracle завершается неудачно с ошибкой:

import cx_Oracle ImportError: Ошибка загрузки DLL: указанный модуль не найден.

Я посмотрел файл cx_oracle.pyd с обходчиком зависимостей, и он сообщает о двух отсутствующих файлах dll MSVCR90.DLL и IESHIMS.DLL.

У меня есть следующие настройки:

  • python 2.6.6
  • pywin32-214
  • cx_oracle_5.0.4-11g

Любая помощь будет высоко оценена

марка

1 Ответ

1 голос
/ 16 мая 2011

Я решил свою проблему.Основной причиной было то, что я только добавил путь к клиентскому программному обеспечению oracle к переменной пользователя PATH .После добавления его в переменную всей системы PATH все работает нормально.

Чтобы устранить проблему, я выполнил следующую процедуру:

  • загрузил обозреватель процессаутилита http://www.microsoft.com/technet/sysinternals/utilities/filemon.mspx
  • определила PID моего сервиса sc queryex [имя службы]
  • отфильтрованопосле PID в рамках исследуемого процесса
  • увидел, что pythonservice.exe не может найти OCI.dll
  • искали OCI.dll в моей системе

На данный момент все было ясно.

mark

...