python - 在 Windows 10 64 位上使用 Python 32 位出现 COM 错误

标签 python odoo odoo-9 pythoncom

我正在尝试使用 odoo 9 代码中的 Windows dll。 python类中的代码是:

import win32com.client
import pythoncom

Pythoncom.CoInitialize ()
Zk = win32com.client.Dispatch ('zkemkeeper.ZKEM.1')

当我在 Windows 8(64 位)上运行它时它没有问题,但是当我在 Windows 10(64 位)上作为服务运行它时,我在日志文件中收到以下错误:

File "C: \ Python27 \ lib \ site-packages \ win32com \ client \ dynamic.py", line 85, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance (IDispatch, None, clsctx, pythoncom.IID_IDispatch)
Com_error: (-2147221164, 'Class not registered', None, None)

我检查了Regedit; dll 已注册。

当我在同一台 PC 上安装 Python 32 位并直接从控制台运行代码时,出现了同样的错误。但是,我安装了 Python 64 位并运行相同的代码,并且运行良好。

谁能告诉我如何使用 odoo 即服务修复此错误?有什么方法可以指向我在 PC 上安装的 64 位 python 而不是内部的?

最佳答案

尝试添加上下文

clsctx=pythoncom.CLSCTX_LOCAL_SERVER 

传递给 Dispatch 的参数。

关于python - 在 Windows 10 64 位上使用 Python 32 位出现 COM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45804286/

相关文章:

python - 如何防止 Odoo 中已分配日期的字段值重复?

python - 如何使用XMLRPC备份数据库?

odoo - 更改社区版中的 Odoo Logo

Python Django 异常中间件用于不在 View 中的异常

python - Flask JSONEncoder 将 ensure_ascii 设置为 False

xml - Odoo,记录标签中的条件

python - odoo/openerp 服务器配置选项 "--load"

python - account.invoice 添加自定义计算和过滤字段

python - MFnMesh allIntersections 返回错误结果

c# - C# 和 Python 之间的命名管道