com: makepy gencache.EnsureModule
Kai Rosenthal
kairosenthal at tiscali.de
Fri Aug 10 05:24:57 EDT 2007
Hello,
I' having a problem with gencache.EnsureModule:
I used win32com\client\makepy.py to successfully generate Python
sources.
Unfortunately, after I call win32com.client.Dispatch(), the object I
get back is of type "COMObject" instead of one of the generated
classes.
In particular, I'm trying to interact with SolidWorks Extensibility
Type Library and the PROGID is "SldWorks.Application".
Using win32com\client\makepy.py -i
SolidWorks Extensibility Type Library
{801A0000-A66C-11D3-A8BD-0000861EBBD6}, lcid=0, major=1, minor=0
>>> # Use these commands in Python code to auto generate .py support
>>> from win32com.client import gencache
>>> gencache.EnsureModule('{801A0000-A66C-11D3-A8BD-0000861EBBD6}',
0, 1, 0)
Looking in win32com\gen-py, the appropriate file _does_ exist:
801A0000-A66C-11D3-A8BD-0000861EBBD6x0x1x0.py
and it does contain the correct class definitions.
Then, in my code:
>>> mod = win32com.client.gencache.EnsureModule('{801A2001-A66C-11D3-A8BD-0000861EBBD6}', 0, 1, 0)
>>> mod
None
>>> ob = win32com.client.Dispatch("SldWorks.Application")
>>> ob
<COMObject SldWorks.Application>
Why are the object mod is None and the object ob is <COMObject
SldWorks.Application> instead <win32com.gen_py.<blah>>?
Any bright ideas as to what's going wrong here?
Thanks for your hints, Kai
More information about the Python-list
mailing list