Roman Yakovenko schrieb:
> I am trying to generate module to custom directory and the process
> fails with next error:
> 
> # Generating comtypes.gen._106173A0_0173_4E5C_84E7_E915422BE997_0_2_0
> # Generating comtypes.gen._00020430_0000_0000_C000_000000000046_0_2_0
> Traceback (most recent call last):
>   File "pdb_reader.py", line 12, in <module>
>     print comtypes.client.GetModule( r'D:\Program Files\Microsoft
> Visual Studio .NET 2003\Visual Studio SDKs\DIA SDK\bin\msdia71.dll' )
>   File "e:\python25\Lib\site-packages\comtypes\client\_generate.py",
> line 100, in GetModule
>     is_current, mod = _CreateWrapper(tlib, pathname)
>   File "e:\python25\Lib\site-packages\comtypes\client\_generate.py",
> line 206, in _CreateWrapper
>     generate_module(tlib, ofi, pathname)
>   File "e:\python25\Lib\site-packages\comtypes\tools\tlbparser.py",
> line 704, in generate_module
>     gen.generate_code(items.values(), filename=pathname)
>   File "e:\Python25\Lib\site-packages\comtypes\tools\codegenerator.py",
> line 239, in generate_code
>     self.generate_all(sorted(items, self.cmpitems))
>   File "e:\Python25\Lib\site-packages\comtypes\tools\codegenerator.py",
> line 181, in generate_all
>     self.generate(item)
>   File "e:\Python25\Lib\site-packages\comtypes\tools\codegenerator.py",
> line 177, in generate
>     mth(item)
>   File "e:\Python25\Lib\site-packages\comtypes\tools\codegenerator.py",
> line 616, in External
>     comtypes.client.GetModule(ext.tlib)
>   File "e:\python25\Lib\site-packages\comtypes\client\_generate.py",
> line 100, in GetModule
>     is_current, mod = _CreateWrapper(tlib, pathname)
>   File "e:\python25\Lib\site-packages\comtypes\client\_generate.py",
> line 218, in _CreateWrapper
>     mod = _my_import(fullname)
>   File "e:\python25\Lib\site-packages\comtypes\client\_generate.py",
> line 14, in _my_import
>     return __import__(fullname, globals(), locals(), ['DUMMY'])
> ImportError: No module named _00020430_0000_0000_C000_000000000046_0_2_0
> 
> Here is the relevant source code:
> 
> import os
> import sys
> import comtypes
> import comtypes.client
> 
> gen_dir = r'D:\dev\xyz'
> 
> sys.path.append( gen_dir )
> 
> comtypes.client.gen_dir = gen_dir
> print comtypes.client.GetModule( r'D:\Program Files\Microsoft Visual
> Studio .NET 2003\Visual Studio SDKs\DIA SDK\bin\msdia71.dll' )
> 
> Thanks
> 

Here is a fix for this problem:

Index: comtypes/client/_generate.py
===================================================================
--- comtypes/client/_generate.py        (revision 59545)
+++ comtypes/client/_generate.py        (working copy)
@@ -11,6 +11,10 @@
 
 def _my_import(fullname):
     # helper function to import dotted modules
+    import comtypes.gen
+    if comtypes.client.gen_dir \
+           and comtypes.client.gen_dir not in comtypes.gen.__path__:
+        comtypes.gen.__path__.append(comtypes.client.gen_dir)
     return __import__(fullname, globals(), locals(), ['DUMMY'])
 
 def _name_module(tlib):


Thanks,
Thomas


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
comtypes-users mailing list
comtypes-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/comtypes-users

Reply via email to