From: Jonathan Hartley on
Alex Hall wrote:
> The vcredist_x86 was, I thought, supposed to give me
> the dll, but it does not seem to have done so.

The installer puts the DLL in the directory C:\WINDOWS\WinSxS
(or at least it does for me, on WinXP) I shall update the py2exe
tutorial page to reflect this.

Under that dir, there are a lot of mangled directory names, and a
director called 'Manifests'. You can still discern the text
'Microsoft.VC90.CRT' and '9.0.21022.8' within the filenames of the DLL
dir and the manifest file that you want. I am no expert, but I think
if you are taking a copy of these to embed in your application, then
you can (must?) rename them to remove the mangling, as described on
the py2exe tutorial page.

If you still cannot find the DLL there, then try searching your
"Program Files" folder for a copy included with another application.
Several other Visual C/C++ applications include these runtime DLLs.
(eg. Console2 from sourceforge)

One other thing to keep in mind is that there is more than one version
of this DLL in the wild, all with the same filename. You absolutely
need the same version that Python 2.6 was compiled with, which is
9.0.21022.8. You can tell which version of the DLL you have got the
tooltip when hovering you mouse cursor over it. (also hovering over
the redistributable installer will tell you the same thing)

The original version of the redistributable installer does provide the
correct DLL version (this is the same thing as linked to above. This
is the English version):
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

The SP1 version of the same installer provides a different version of
the DLL (but with the same filename). This will not work.
From: Jonathan Hartley on
On Apr 15, 12:11 pm, Jonathan Hartley <tart...(a)tartley.com> wrote:
> Alex Hall wrote:
> > The vcredist_x86 was, I thought, supposed to give me
> > the dll, but it does not seem to have done so.
>
> The installer puts the DLL in the directory C:\WINDOWS\WinSxS
> (or at least it does for me, on WinXP) I shall update the py2exe
> tutorial page to reflect this.
>
> Under that dir, there are a lot of mangled directory names, and a
> director called 'Manifests'. You can still discern the text
> 'Microsoft.VC90.CRT' and '9.0.21022.8' within the filenames of the DLL
> dir and the manifest file that you want. I am no expert, but I think
> if you are taking a copy of these to embed in your application, then
> you can (must?) rename them to remove the mangling, as described on
> the py2exe tutorial page.
>
> If you still cannot find the DLL there, then try searching your
> "Program Files" folder for a copy included with another application.
> Several other Visual C/C++ applications include these runtime DLLs.
> (eg. Console2 from sourceforge)
>
> One other thing to keep in mind is that there is more than one version
> of this DLL in the wild, all with the same filename. You absolutely
> need the same version that Python 2.6 was compiled with, which is
> 9.0.21022.8. You can tell which version of the DLL you have got the
> tooltip when hovering you mouse cursor over it. (also hovering over
> the redistributable installer will tell you the same thing)
>
> The original version of the redistributable installer does provide the
> correct DLL version (this is the same thing as linked to above. This
> is the English version):http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e0...
>
> The SP1 version of the same installer provides a different version of
> the DLL (but with the same filename). This will not work.

Oh, and, this is probably obvious and well-known, sorry if I'm
teaching grandmother to suck eggs here, but if you have rights to
distribute this DLL with your application, I understand this means
that you own a copy of Visual Studio, and a copy of the DLL and
manifest file can be found in the installed Visual Studio 'redist'
directory. If you don't have such a DLL in that directory (eg. if you
have the express edition) then you don't have legal right to
distribution it. Just so you know.
From: Jonathan Hartley on
On Apr 15, 12:11 pm, Jonathan Hartley <tart...(a)tartley.com> wrote:
> The installer puts the DLL in the directory C:\WINDOWS\WinSxS
> (or at least it does for me, on WinXP) I shall update the py2exe
> tutorial page to reflect this.

Done. Final para of section 5.2.2 now reads:
"""
The installer puts a copy of the DLLs in the directory C:\WINDOWS
\WinSxS (XP), inside subdirectories with mangled names. The manifest
file is in the 'Manifests' subdirectory, again this will have a
mangled filename. You can still discern the text 'Microsoft.VC90.CRT'
and '9.0.21022.8' within the mangled file and directory names, to find
the files. It is possible to take a copy of these files and remove the
filename mangling, to embed them in your application as described in
5.2.1.
"""
Where section 5.2.1 begins, as it always has:
"""
If you do have the rights to redistribute MSVCR90.dll, there should be
a copy of it in your Visual Studio install, under VC\redist
\x86\Microsoft.VC90.CRT...
"""

http://www.py2exe.org/index.cgi/Tutorial#Step522