当python脚本作为win32服务启动时,导入cx_oracle失败
我已经编写了一个python脚本,通过对当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
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。请在答案解决您的问题时(即使是您的答案)将其标记为已接受(单击勾号)。