Python win32com无法再打开Excel

Python win32com无法再打开Excel,python,win32com,Python,Win32com,我从中提取代码,它工作了大约6周 这是我的实现 import win32com.client as win32 excel = win32.gencache.EnsureDispatch('Excel.Application') 然后有一天它停止了,引发了这个错误,并且没有深入到我的代码中 Traceback (most recent call last): File "C:\Python\convert.py", line 32, in <module>

我从中提取代码,它工作了大约6周

这是我的实现

import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
然后有一天它停止了,引发了这个错误,并且没有深入到我的代码中

Traceback (most recent call last):
  File "C:\Python\convert.py", line 32, in <module>
    excel = win32.gencache.EnsureDispatch('Excel.Application')
  File "C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\win32com\client\gencache.py", line 527, in EnsureDispatch
    disp = win32com.client.Dispatch(prog_id)
  File "C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\win32com\client\__init__.py", line 96, in Dispatch
    return __WrapDispatch(dispatch, userName, resultCLSID, typeinfo, clsctx=clsctx)
  File "C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\win32com\client\__init__.py", line 37, in __WrapDispatch
    klass = gencache.GetClassForCLSID(resultCLSID)
  File "C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\win32com\client\gencache.py", line 183, in GetClassForCLSID
    mod = GetModuleForCLSID(clsid)
  File "C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\win32com\client\gencache.py", line 226, in GetModuleForCLSID
    mod = GetModuleForTypelib(typelibCLSID, lcid, major, minor)
  File "C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\win32com\client\gencache.py", line 266, in GetModuleForTypelib
    AddModuleToCache(typelibCLSID, lcid, major, minor)
  File "C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\win32com\client\gencache.py", line 552, in AddModuleToCache
    dict = mod.CLSIDToClassMap
AttributeError: module 'win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9' has no attribute 'CLSIDToClassMap'
回溯(最近一次呼叫最后一次):
文件“C:\Python\convert.py”,第32行,在
excel=win32.gencache.EnsureDispatch('excel.Application')
文件“C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site packages\win32com\client\gencache.py”,第527行,位于修补程序中
disp=win32com.client.Dispatch(程序id)
文件“C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site packages\win32com\client\\ uuuuuu init\uuuuuuuu.py”,第96行,在分派中
return uu WrapDispatch(分派、用户名、resultcsid、typeinfo、clsctx=clsctx)
文件“C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site packages\win32com\client\\ uuuuu init\uuuuuuu.py”,第37行,在\uuuu WrapDispatch中
klass=gencache.GetClassForCLSID(resultcsid)
文件“C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site packages\win32com\client\gencache.py”,第183行,位于GetClassForCLSID中
mod=getModuleForcsid(clsid)
文件“C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site packages\win32com\client\gencache.py”,第226行,位于GetModuleForcsId中
mod=GetModuleForTypelib(typelibCLSID、lcid、major、minor)
文件“C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site packages\win32com\client\gencache.py”,第266行,位于GetModuleForTypelib中
AddModuleToCache(类型libclsid、lcid、主要、次要)
文件“C:\Users\jkenn\AppData\Local\Programs\Python\Python38-32\lib\site packages\win32com\client\gencache.py”,第552行,位于AddModuleToCache中
dict=mod.CLSIDToClassMap
AttributeError:模块“win32com.gen_py.00020813-0000-0000-C000-0000000000 46x0x1x9”没有属性“CLSIDToClassMap”
我完全是自学成才,这远远超出了我的挖掘能力,所以如果有人能解释为什么会发生这种情况,我将非常感激

编辑:我找到了这篇关于win32com的文章


我尝试了两种版本,出现了相同的错误,因此调用“Excel.application”是否有问题?

似乎记得有一种方法可以生成pywin32和Windows API之间的绑定(pywin附带的IDE上的菜单项?)。因此,重新生成绑定可能是一种尝试。对不起,这有点模糊,我很久没用了。这能回答你的问题吗?解决了!如果有人遇到这个问题,我会在这里发布。关于github[链接]的回答如果发现错误,请执行此操作#清除C:\Users\\AppData\Local\Temp\gen\u py的内容似乎记得有一种方法可以生成pywin32和Windows API之间的绑定(pywin附带的IDE上的菜单项?)。因此,重新生成绑定可能是一种尝试。对不起,这有点模糊,我很久没用了。这能回答你的问题吗?解决了!如果有人遇到这个问题,我会在这里发布。关于github[链接]的回答如果发现错误,请执行此操作#清除C:\Users\\AppData\Local\Temp\gen\u py的内容