当python脚本作为win32服务启动时,导入cx_oracle失败

当python脚本作为win32服务启动时,导入cx_oracle失败,python,winapi,cx-oracle,Python,Winapi,Cx Oracle,我已经编写了一个python脚本,通过对win32serviceutil.ServiceFramework子类化,该脚本应该作为windows服务运行。在脚本中使用cx\u oracle模块 当我在调试模式(pythondlogprod.pydebug)下运行服务时,一切正常。 但是,当我尝试启动服务(python DLOGprod.py start)时,导入cx\u oracle模块失败,出现错误: 导入cx\U Oracle导入错误:DLL加载失败:找不到指定的模块 我确实用dependen

我已经编写了一个python脚本,通过对
win32serviceutil.ServiceFramework
子类化,该脚本应该作为windows服务运行。在脚本中使用
cx\u oracle
模块

当我在调试模式(
pythondlogprod.pydebug
)下运行服务时,一切正常。 但是,当我尝试启动服务(
python DLOGprod.py start
)时,导入
cx\u oracle
模块失败,出现错误:

导入cx\U Oracle导入错误:DLL加载失败:找不到指定的模块

我确实用dependency walker查看了
cx_oracle.pyd
文件,它报告了两个缺少的dll文件
MSVCR90.dll
IESHIMS.dll

我正在进行以下设置:

  • python 2.6.6
  • pywin32-214
  • cx_oracle_5.0.4-11g
任何帮助都将不胜感激


马克:我确实解决了我的问题。根本原因是我只将oracle客户端软件的路径添加到了用户的path变量中。自从将其添加到系统范围的PATH变量后,一切正常

要对问题进行故障排除,我遵循了以下步骤:
  • 已下载process explorer实用程序
  • 已确定我的服务的PIDsc查询[服务名称]
  • 在流程探索者中的PID之后过滤
  • 看到pythonservice.exe找不到OCI.dll
  • 在我的系统上搜索OCI.dll
在这一点上,一切都很清楚


马克:我确实解决了我的问题。根本原因是我只将oracle客户端软件的路径添加到了用户的path变量中。自从将其添加到系统范围的PATH变量后,一切正常

要对问题进行故障排除,我遵循了以下步骤:
  • 已下载process explorer实用程序
  • 已确定我的服务的PIDsc查询[服务名称]
  • 在流程探索者中的PID之后过滤
  • 看到pythonservice.exe找不到OCI.dll
  • 在我的系统上搜索OCI.dll
在这一点上,一切都很清楚


开始服务时,标记
PYTHONPATH
是什么?
sys.path
的值是多少?您可能需要编写一个小型的两行服务,将值打印到文件中,以便与我们共享。启动该服务时,
PYTHONPATH
是什么?
sys.path
的值是多少?您可能需要编写一个小型的两行服务,将值打印到文件中,以便与我们共享。您好,欢迎使用so。请,当一个答案解决了你的问题(即使它是你的答案)时,将其标记为已接受(单击勾号)。嗨,欢迎使用SO。请在答案解决您的问题时(即使是您的答案)将其标记为已接受(单击勾号)。