[python-win32] Win32 COM cache problem
Thomas Heller
theller at ctypes.org
Wed May 30 18:07:37 CEST 2007
Marc-André Belzile schrieb:
> I dig a bit more and it appears that the python win32 com module requires all target typelibs to be in the app current directory. Otherwise the cache is systematically re-generated anytime a new scripting engine is created.
>
> Am I doing something wrong ? Thanks in advance...
>
> -mab
>
> -----Original Message-----
> From: python-win32-bounces at python.org [mailto:python-win32-bounces at python.org] On Behalf Of Marc-André Belzile
> Sent: May 28, 2007 6:28 PM
> To: python-win32 at python.org
> Subject: [python-win32] Win32 COM cache problem
>
> Hi,
>
> My win32 app is hosting python 2.5 via the scripting ActiveX object. Everything works perfectly but the win32 COM cache behaves strangely if the app current folder (e.g. c:\temp) is different than the application path (e.g. c:\bin\MyApp). At some point when the app needs to create a new python scripting engine, the whole cache gets re-created from scratch which makes things pretty slow. This will not happen if the app is executed from it's normal application folder.
>
> Is there anything I can do to avoid this problem other than running the app from its normal application folder ?
>
> Below is an excerpt of a filemon log that shows the cache generation.
>
> Thanks for your help.
>
> -mab
>
> 5:47:26 PM XSI.exe:4964 OPEN C:\Python25\lib\site-packages\win32com\gen_py\269C4D8C-E32D-11D3-811D-00A0C9AC19A9x0x1x0.py NOT FOUND Options: Open Access: 00010080
> 5:47:26 PM XSI.exe:4964 OPEN C:\Python25\lib\site-packages\win32com\gen_py\269C4D8C-E32D-11D3-811D-00A0C9AC19A9x0x1x0.pyc NOT FOUND Options: Open Access: 00010080
> 5:47:26 PM XSI.exe:4964 OPEN C:\Python25\lib\site-packages\win32com\gen_py\269C4D8C-E32D-11D3-811D-00A0C9AC19A9x0x1x0.pyo NOT FOUND Options: Open Access: 00010080
> 5:47:26 PM XSI.exe:4964 CREATE C:\Python25\lib\site-packages\win32com\gen_py\269C4D8C-E32D-11D3-811D-00A0C9AC19A9x0x1x0\__init__.py SUCCESS Options: OverwriteIf Access: 00120196
> 5:47:26 PM XSI.exe:4964 QUERY INFORMATION C:\Python25\lib\site-packages\win32com\gen_py\269C4D8C-E32D-11D3-811D-00A0C9AC19A9x0x1x0\__init__.py SUCCESS FileFsVolumeInformation
> 5:47:26 PM XSI.exe:4964 QUERY INFORMATION C:\Python25\lib\site-packages\win32com\gen_py\269C4D8C-E32D-11D3-811D-00A0C9AC19A9x0x1x0\__init__.py BUFFER OVERFLOW FileAllInformation
^^^^^^^^^^^^^^^
Have you investigated why the above call fails? To me this looks like pywin cannot determine something about the file,
and then recreates it just in case...
Thomas
More information about the Python-win32
mailing list