3

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 as a service でこのエラーを修正する方法を誰か教えてもらえますか? 内部のものではなく、PCにインストールした64ビットのPythonを指す方法はありますか?

4

2 に答える 2