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

pywin32调用Excel报错:无法自动执行makepy,求解决方案

Pywin32操作Excel时出现TypeError:无法自动执行makepy流程

问题详情

脚本用于自动将CSV数据复制粘贴到Excel模板,已正常运行数月,今日触发以下错误:

异常:TypeError
This COM object can not automate the makepy process - please run makepy manually for this object

处理该异常时又触发新错误:

文件 "C:\Users\alfredop\Pack EOL.py",第65行:
excel = win32.gencache.EnsureDispatch("Excel.Application")

已尝试以下方法但均无效:

  • 卸载/重装pywin32
  • 删除genpy文件夹
  • 重启电脑

另外发现pywin32文件夹中找不到makepy.py可执行文件,不确定是否与此问题相关。报错行对应脚本代码如下:

# Convert the CSV data to a DataFrame
df = pd.DataFrame([row[:148] for row in final_rows], columns=rows[0][:148])

# Copy the DataFrame to the clipboard
pyperclip.copy(df.to_csv(index=False, sep="\t", header=False))

# Open Excel and paste the data into the "DUs_DCH Data" sheet of the "BigHorn DCIR Template" workbook
excel = win32.gencache.EnsureDispatch("Excel.Application")
workbook = excel.Workbooks.Open(os.path.join(root_dir2, "9MC3DV2-XXX Bighorn DCIR Template.xlsx"))
workbook.SaveAs(os.path.join(root_dir, f"1. 9MC3DV2-{root_dir3} EOL {root_dir4} RUN {root_dir5} C3 MANAFLEX DCIR.xlsx"))
worksheet = workbook.Worksheets("DUs_DCH Data")
worksheet.Range("B2").PasteSpecial()
workbook.Save()
workbook.Close()
excel.Quit()

解决方案

方案1:替换EnsureDispatch为Dispatch

win32.gencache.EnsureDispatch会尝试自动生成COM对象的包装类,改用win32com.client.Dispatch可绕开makepy自动生成流程,直接创建COM实例。修改报错行代码:

import win32com.client
# 替换原来的EnsureDispatch为Dispatch
excel = win32com.client.Dispatch("Excel.Application")

方案2:手动生成Excel的COM包装类

若必须使用缓存生成的包装类,手动运行makepy工具:

  1. 打开命令提示符,执行python -m win32com.client.makepy
  2. 在弹出的列表中找到Microsoft Excel xx.x Object Library(xx.x对应你的Excel版本),选中后点击确定,工具会自动生成对应的包装类文件。

方案3:检查Excel版本兼容性

确认当前安装的pywin32版本与Excel版本匹配,若近期更新过Excel,需重新安装对应版本的pywin32(优先使用最新稳定版)。

方案4:彻底清理COM缓存

除删除genpy文件夹外,手动清理以下路径的缓存文件:

  • C:\Users\<你的用户名>\AppData\Local\Temp\gen_py
  • 确保Excel进程完全关闭后再删除缓存,避免文件被占用。

内容的提问来源于stack exchange,提问作者Alfredo Portillo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:27:27