异常:无效的类字符串
(Invalid Class String)
。
使用python
操作COM
组件的朋友应该都碰到过,这个报错来自于python
标准库pythoncom
。win32com
也是建立在pythoncom
基础上的,在我使用win32com
一年多的期间,印象中碰到三次这个报错。有时候各种办法都尝试了,也无法解决,最后不得已重装了系统,虽然有点为了抓只老鼠把家给拆了的感觉,但最后也能解决了问题。
好死不死,昨天(2024年1月17日),我又碰到了这个问题,第四次了!,下面是业务场景:
线上测试时,有一台机器报错,同时本地开发环境也报同样的错:无效的类字符串
。每台下游机器均在子进程中运行win32com
,并不在主进程中。(是不是和进程有关呢?按下不表)。接下来,就逐步分析,彻底把把这只老鼠给揪出来消灭掉。
win32com
是如何工作的
弄清楚这个问题,一切就好办了。我们直接以win32com
的客户端启动器Dispatch
或DispatchEx
来举例,下面是一个简单的示例:
from win32com.client import Dispatch
client = Dispatch('kwps.application')
无效的类字符串
的错误在