Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python COM服务器抛出';模块';对象没有属性';变体';_Python_Com_Com Server - Fatal编程技术网

Python COM服务器抛出';模块';对象没有属性';变体';

Python COM服务器抛出';模块';对象没有属性';变体';,python,com,com-server,Python,Com,Com Server,下面是一个用Python实现的COM服务器: from win32com.server.exception import COMException import pythoncom import sys import os from string import Template import logging import logging.config class Connector: _reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER _r

下面是一个用Python实现的COM服务器:

from win32com.server.exception import COMException
import pythoncom
import sys
import os
from string import Template
import logging
import logging.config

class Connector:
    _reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER
    _reg_clsid_ = "{0CE25AEB-1AFA-4DA7-97BD-F93CDBFB376C}"
    _reg_desc_ = "Python Test COM Server"
    _reg_progid_ = "Compy.Connect"
    _public_methods_ = ['Process', 'Status']
    _public_attrs_ = []
    _readonly_attrs_ = []

    def Process(self, what):
        pass

    def Status(self):
        return Template("""
        Current Directory: $dir
        Installed: $script
        PythonPATH: $pyPath
        """).substitute(dir = os.getcwd(),
                        script = os.path.abspath(__file__),
                        pyPath = sys.path)

if __name__ == '__main__':
    import win32com.server.register
    win32com.server.register.UseCommandLine(Connector)
没问题。 当它运行时,会导致以下情况发生在生产机器上,而不是在开发盒上:

>>> cc = CreateObject("Compy.Connect")
>>> cc.Status()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python26\lib\site-packages\comtypes\client\dynamic.py", line 42, in _
_call__
    return self._obj._comobj.Invoke(self._id, *args)
  File "C:\Python26\lib\site-packages\comtypes\automation.py", line 717, in Invo
ke
raise COMError(hresult, text, details)
_ctypes.COMError: (-2147352567, 'Exception occurred.', (u"Unexpected Python Erro
r: AttributeError: 'module' object has no attribute 'VARIANT'\n", u'Python COM S
erver Internal Error', None, 0L, -2147467259))
>>>
cc=CreateObject(“Compy.Connect”) >>>cc.状态() 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“C:\Python26\lib\site packages\comtypes\client\dynamic.py”,第42行,在_ _召唤__ 返回self.\u obj.\u comobj.Invoke(self.\u id,*args) 文件“C:\Python26\lib\site packages\comtypes\automation.py”,第717行,在Invo中 ke raise COMError(hresult、文本、详细信息) _ctypes.COMError:(-2147352567,'发生异常',(u)意外的Python错误 r:AttributeError:'module'对象没有属性'VARIANT'\n',u'Python COM S 服务器内部错误',无,0L,-2147467259)) >>>
我已经安装了comtypes 0.6.2。运行Python2.6.6

在Pywin32 build 217中引入了VARIANT类。 请尝试在以下计算机上安装最新版本: 这是失败的