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

1 投票
1 回答
964 浏览
提问于 2025-04-16 17:35

我写了一个Python脚本,想让它作为Windows服务运行,方法是继承win32serviceutil.ServiceFramework。在这个脚本中,我使用了cx_oracle模块。

当我以调试模式运行服务(python DLOGprod.py debug)时,一切都正常。但是当我尝试启动服务(python DLOGprod.py start)时,导入cx_oracle模块时出现了错误:

导入cx_Oracle时出错:DLL加载失败:找不到指定的模块。

我用依赖查看工具看了一下cx_oracle.pyd文件,发现缺少两个DLL文件MSVCR90.DLLIESHIMS.DLL

我的环境设置如下:

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

任何帮助都非常感谢。

mark

1 个回答

1

我解决了我的问题。根本原因是我只把Oracle客户端软件的路径添加到了用户的PATH变量中。现在把它添加到系统的PATH变量中后,一切都正常了。

为了解决这个问题,我按照以下步骤进行了排查:

到这个时候,一切都明白了。

mark

撰写回答