Skip to content
Advertisement

python-win32com excel com model started generating errors

Over the last few days, I have been working on automating the generation of some pivot tables for a number of reports.

Boiled down to the minimum, the following code was working without issue:

JavaScript

This would pop-up an instance of excel and I could continue working in Python. But suddenly, today my scripts are failing with the following:

JavaScript

The code has not changed from yesterday to today. I have no idea what is happening!!!.

Another interesting kicker. if I do the same code in the same session again I get a different error:

JavaScript

So I jump over to a windows machine with a fresh windows install, install python37 and pip install pypiwin32. Run the very same lines and excel opens just like it did yesterday on my original machine.

I tried un-installing and re-installing with no luck. Any idea what is going on here?

NOTE: Dynamic dispatch still works:

JavaScript

But I specifically need static dispatch as Pivot Tables won’t work with a dynamically dispatched object (much later in my code):

JavaScript

Advertisement

Answer

I had the same issue and I resolved it by following the instructions here: https://mail.python.org/pipermail/python-win32/2007-August/006147.html

Deleting the gen_py output directory and re-running makepy SUCCEEDS and subsequently the test application runs OK again.

So the symptom is resolved, but any clues as to how this could have happened. This is a VERY long running application (think 24×7 for years) and I’m concerned that whatever caused this might occur again.

To find the output directory, run this in your python console / python session:

JavaScript

Based on the exception message in your post, the directory you need to remove will be titled ‘00020813-0000-0000-C000-000000000046x0x1x9’. So delete this directory and re-run the code. And if you’re nervous about deleting it (like I was) just cut the directory and paste it somewhere else.

💡Note that this directory is usually in your “TEMP” directory (copy-paste %TEMP%/gen_py in Windows File Explorer and you will arrive there directly).

I have no idea why this happens nor do I know how to prevent it from happening again, but the directions in the link I provided seemed to work for me.

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement