You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

win32com调用Excel报错:模块无MinorVersion属性,请求协助排查

问题排查与解决步骤

问题描述

此前可正常运行的Python操作Excel代码,现在执行时出现属性错误,提示win32com生成的缓存模块缺少MinorVersion属性。

代码示例

import win32com.client as win32

excel = win32.gencache.EnsureDispatch('Excel.Application')

wb=excel.Workbooks.Open('C:\Technical\AutomationScripts\Model_Variable_Path.xlsx')

excel.Visible = True

报错信息

File "C:\Technical\AutomationScripts\Testscript.py", line 2, in <module>
excel = win32.gencache.EnsureDispatch('Excel.Application')

File "C:\Program Files\Python39\lib\site-packages\win32com\client\gencache.py", line 625, in EnsureDispatch

mod = EnsureModule(tla[0], tla[1], tla[3], tla[4], bForDemand=bForDemand)

AttributeError: 模块 'win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9' 没有属性 'MinorVersion'

解决方法

方法一:清理win32com缓存

  1. 定位到gen_py缓存目录:通常在C:\Users\[你的用户名]\AppData\Local\Temp\gen_py
  2. 删除该目录下所有文件及子文件夹,重点删除报错中提到的00020813-0000-0000-C000-000000000046x0x1x9相关文件夹
  3. 重启Python环境,重新运行代码,win32com会自动生成新的缓存文件

方法二:改用Dispatch替代EnsureDispatch

将代码中的win32.gencache.EnsureDispatch替换为win32.Dispatch,同时给路径字符串添加r前缀避免转义问题:

import win32com.client as win32

excel = win32.Dispatch('Excel.Application')

wb=excel.Workbooks.Open(r'C:\Technical\AutomationScripts\Model_Variable_Path.xlsx')

excel.Visible = True

内容的提问来源于stack exchange,提问作者Joseph Stalin Pillai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 06:30:53