python3 操作excel 报错 AttributeError:module ‘win32com.gen_py.’ has no attribute ‘CLSIDToClassMap‘

电脑python3使用pywin32操作excel文件就报错。
报错信息如下:

Traceback (most recent call last):
   File "F:\Python\lib\site-packages\xlwings\_xlwindows.py", line 288, in __init__
   File "F:\Python\lib\site-packages\win32com\client\__init__.py", line 114, in DispatchEx
   File "F:\Python\lib\site-packages\win32com\client\__init__.py", line 96, in Dispatch
   File "F:\Python\lib\site-packages\win32com\client\__init__.py", line 37, in __WrapDispatch
   File "F:\Python\lib\site-packages\win32com\client\gencache.py", line 183, in GetClassForCLSID
   File "F:\Python\lib\site-packages\win32com\client\gencache.py", line 226, in GetModuleForCLSID
   File "F:\Python\lib\site-packages\win32com\client\gencache.py", line 266, in GetModuleForTypelib
   File "F:\Python\lib\site-packages\win32com\client\gencache.py", line 558, in AddModuleToCache
AttributeError: module 'win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9' has no attribute 'CLSIDToClassMap'

解决方法:

运行下面代码,找到缓存文件所在路径,然后删除gen_py文件夹下的所有包含这一堆数字的文件夹

from win32com.client.gencache import EnsureDispatch
import sys
xl = EnsureDispatch("Word.Application")
print(sys.modules[xl.__module__].__file__)

执行上面代码,找到

C:\Users\baiyu\AppData\Local\Temp\gen_py\3.6\00020905-0000-0000-C000-000000000046x0x8x7\_Application.py

然后删除对应的文件夹问题就解决了

上网搜索找到解决方案后,做个记录。为啥报错不清楚。

风影OvO

风影OvO, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA 4.0协议进行授权 | 转载请注明原文链接

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐