[python-win32] Pb SxS for install

Mark Hammond mhammond at skippinet.com.au
Fri Jan 30 23:37:56 CET 2009


Thanks for testing this.

> - With the same conditions as yesterday, your new installer
> (pywin32-212.7.win32-py2.6.exe) run OK. But, after, it's my softwares
> who
> have SxS problem!!!

What problems exactly?

IIUC, we have determined that unless the CRT assembly is installed globally,
every .DLL or .EXE which references the VC9 CRT must have a copy of that CRT
next to itself.  For example, if python26.dll references the CRT and
socket.pyd references the CRT via its menifest, and these files are not in
the same directory, 2 copies of the CRT are needed - the socket module will
*not* be use the one *already loaded* by python.  Or something like that :)

So, the approach taken by Python now is:

* python26.dll references the assembly in its manifest.
* .pyd files do *not* reference the manifest.
* Before python26.dll attempts to load modules, it explicitly re-activates
its own "activation context".  This causes the assemblies references in
python26.dll to be used when satisfying the .pyd imports - so no extra CRT
is needed.
* bdist_wininst created exectuables (like the pywin32 installer) now embed a
static copy of the C runtime library.

These should all conspire to work in most cases - so I'd be interested to
know how your software fits in this.  Is your software .pyd files?  If so,
you probably need to make sure they so *not* embed a manifest - which later
distutils take care of for you.

Hope this is helpful,

Mark



More information about the python-win32 mailing list