Thanks, now I found what I was missing - the executable also needs an
updated manifest which references the CRT. Then, it also works with
Python 2.6.1 (for Python 2.6 the changed manifest is not needed)
Summary so far for me:

- My method above: works with Python 2.6 (both --onedir and --
onefile), --onedir also works with Python 2.6.1, but not --onefile
- My method above + assembly next to the executable (DLLs +
Microsoft.VC90.CRT.manifest, either in subfolder called
Microsoft.VC90.CRT or loose files): --onefile also works with Python
2.6.1 (even though it is no longer really a onefile deployment - but I
certainly don't blame pyinstaller)

I also found this http://bugs.python.org/issue4566 I didn't know about
before - so maybe we can hope that a real fix for those issues will be
incorporated into Python itself in a next version.

Regards,

Florian Höch

On 12 Mrz., 22:52, Giovanni Bajo <[email protected]> wrote:
> On gio, 2009-03-12 at 07:36 -0700, Florian Höch wrote:
>
>
>
> > Yes, all the WinSxS stuff is quite confusing (atleast for me, not
> > having too much experience with it either). But I may be able to
> > provide some pointers, to get PyInstaller (latest trunk) to create
> > working exe's on Windows with Python 2.6 and maybe 2.6.1 (I might have
> > more info later)
> > You first need to apply the patches posted here
> >http://pyinstaller.python-hosting.com/attachment/ticket/39/PyInstalle...
> > (maybe sans the python26.dll exclusion, and you may need to apply them
> > manually since the trunk changed since the patches were posted).
> > Then, the method I currently use to get working executables with
> > Python 2.6 is:
> > - Get the MSVCRT 9 DLLs and accompanying manifest (they are for
> > example in \WINDOWS\WinSxS in a subfolder if you installed Python 2.6
> > via the official python.org Windows Installer)
> > - In the spec file look for the part that reads a.binaries and change
> > it to a.binaries + ['Microsoft.VC90.CRT.manifest', 'msvcm90.dll',
> > 'msvcp90.dll', 'msvcr90.dll']
> >   (copy the DLLs from WinSxS or add the full paths to the filenames)
> > - Now, the executable should be able to run if Python 2.6 was used to
> > create it.
> > - For Python 2.6.1, it still won't work - I will post again if I find
> > something new.
>
> I am told that it should work if you copy the files into a directory
> next to the executable with the same name it has within the \Windows
> \WinSxS folder. I think it's called "Microsoft.VC90.CRT".
>
> If so, try creating a structure like this:
>
>     YourProgram.exe     <- made by PyInstaller
>     Microsoft.VC90.CRT\
>         msvcr90.dll
>         msvcp90.dll
>         etc.
>
> Let me know if it works like this.
> --
> Giovanni Bajo
> Develer S.r.l.http://www.develer.com
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"PyInstaller" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/PyInstaller?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to