记录OSError: [WinError -2147221008] 尚未调用 CoInitialize

该博客介绍了Python中遇到的COM错误,并提供了解决方案。问题出现在`comtypes`库的`CoCreateInstance()`函数中,为解决此问题,需要在调用函数前添加`CoInitialize()`初始化。此修复方法适用于Python38_32环境,对于使用COM接口的开发者具有参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错截图如下:


解决方案:

Python38_32\Lib\site-packages\comtypes\__init__.py的CoCreateInstance()里添加CoInitialize()

下面代码中的倒数第3行

def CoCreateInstance(clsid, interface=None, clsctx=None, punkouter=None):
    """The basic windows api to create a COM class object and return a
    pointer to an interface.
    """
    if clsctx is None:
        clsctx = CLSCTX_SERVER
    if interface is None:
        interface = IUnknown
    p = POINTER(interface)()
    iid = interface._iid_
    CoInitialize()
    _ole32.CoCreateInstance(byref(clsid), punkouter, clsctx, byref(iid), byref(p))
    return p

参考: https://blog.youkuaiyun.com/wjx199112/article/details/121649643

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值