我正在尝试使用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而不是内部的?
答案 0 :(得分:2)
尝试使用
添加上下文function sum_marks($sub){--Function body--
}
传递给Dispatch的args。
答案 1 :(得分:0)
t = win32com.client.Dispatch("TDApiOle80.TDConnection")
对此不起作用。
tdc = win32com.client.Dispatch("TDApiOle80.TDConnection",clsctx=pythoncom.CLSCTX_LOCAL_SERVER)
派遣
调度,
userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)