【pywin32】「Fix for module win32com.gen_py has no attribute ‘CLSIDToPackageMap’」というエラーが出た時の対処法

【pywin32】「Fix for module win32com.gen_py has no attribute ‘CLSIDToPackageMap’」というエラーが出た時の対処法

前回まで動いていたコードが動かなくなった

pywin32経由でExcelアプリを開いて表示するだけの単純なコードです。
正常に動作していたのですが、ある日いきなりエラーが出て動かなくなりました。

import win32com.client
from time import sleep

app = None
try:    
    app = win32com.client.gencache.EnsureDispatch("Excel.Application")
except Exception:
    try:
        app = win32com.client.DispatchEx("Excel.Application")
    except Exception:
        try:
            # 起動しているExcelを用いる
            self.app = win32com.client.GetObject(Class="Excel.Application")
        except Exception as e:
            raise e
            exit()

app.Visible = True
app.DisplayAlerts = False
sleep(10)
app.Quit()

そのエラーがこちらです。

Fix for module win32com.gen_py has no attribute 'CLSIDToPackageMap'

詳しい原因は不明なのですが、gen_pyというファイルが邪魔をしているそうですので、そのファイルを削除してあげれば良いらしいです。

解決方法

下記のコードをPowershellで実行するだけです。
私の場合はAnaconda Promptで実行したところ、エラーが出なくなりました。

Remove-Item -path $env:LOCALAPPDATA\Temp\gen_py -recurse

参考資料:https://gist.github.com/rdapaz/63590adb94a46039ca4a10994dff9dbe

誰かの助けになれば幸いです。

pywin32カテゴリの最新記事