> Yea the main problem is the python directory does not contain a
> manifest on Vista for some reason.
It's embedded in the python.exe, which is part of the problem that we've
been trying to deal with. If you have VC++ there is a mt.exe tool that
can extract it, otherwise you can pull it out using win32 APIs (via
ctypes for example.)
--
Robin Dunn
Software Craftsman
http://wxPython.org
Robin thx a lot. I happen to have stopped using c++ years ago so I think I will use this as a excuse to learn ctypes through python. Would you happen to know of any good resources off hand? If not thanks for your help anyway much appreciated.
Sent via BlackBerry by AT&T
Sorry for getting back into this thread a bit late - was not on the
computer much over the weekend and I am also having ADSL connection
problems.
Bill Lewis Jr wrote:
...
> Those links were very helpful, however, it seems Werner fails to
> mention where I get the manifest file on Windows Vista from.
I was mainly playing around on Windows 7 with Python 2.6.2 (as I wanted
to be 100% sure not to mess up my dev environment), on Win7 (actually on
all Windows versions except Vista) one can install "install for me only"
which then puts the manifest and needed dll's into the Python 2.6
folder, otherwise they will go into the SxS folder.
> I looked
> around and under WinSxS folder it seems I have 2 folders with dll's
> for the crt.
>
The manifest I show on the wiki page is one way of getting it.
> x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91
>
Python 2.6.2 is using the above version ("9.0.21022"), which is the one
I posted on the wiki.
> and
>
> x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.1_none_e163563597edeada
>
You must have something else installed which uses the same dll's but a
newer version.
> Then under the Manifests folder I have 2 manifests matching the
> folders above.
>
I think it is best to use the exactly the same version as Python 2.6
uses, so the 9.0.21022 one.
> Not sure which one I should be grabbing the dll's and manifests for.
>
Will update the wiki page later this week to expand on all this a bit more.
Werner
Thanks,
Stephen.
I'm in the process of putting things in motion for the wxPython 3.x
effort and along the way I plan on doing things that will make it easier
to also have Python 3.x support. I don't think I'll put much effort
into doing them concurrently, (but you never know) so at this point the
best I can say is, "Sometime after wxPython 3.x for Python 2.x is ready."
Ok, thanks Robin. Btw, you rule at ruling and stuff. ;)
Stephen.
Bill Lewis Jr wrote:
> Ok I am still having issues and I am not sure why. Apparently py2exe
> still can't fine the dll's been working on this for a few days now
> everything seems to be coded right in the setup.py here it is.
>
> ++++++++++++++++++++++++++++++++++++++
>
> from distutils.core import setup
> import os
> import py2exe
>
> data = []
> # Populate data list
> for files in os.listdir('C:/PyMSdlls/'):
> tmp1 = 'C:/PyMSdlls/' + files
>
maybe your slashes?
If you use "glob" this is simpler, see lines 64 to 70 in the py2exe wiki
page.
> # Skip if it is a directory
> if os.path.isfile(tmp1):
> tmp2 = 'Microsoft.VC90.CRT', [tmp1]
>
I think this should be:
tmp2 = ('Microsoft.VC90.CRT', [tmp1])
> data.append(tmp2)
>
> setup(
> windows=['SimpleApp.py'],
> data_files = data
> )
>
>
Werner
Bill Lewis Jr wrote:
> Made some changes however still having the same issue. py2exe is
> blurting out that it can't fine MSVCP90.dll still.
>
This happens when you run setup.py py2exe? Or when you try to run the
generated exe?
Does it say where it is looking for it?
> I am getting to the point where it seems just more logical to
> downgrade to python 2.5.4.
>
> +++++++++++++++++++++++++++++++++++++++++++++
>
> from distutils.core import setup
> import os
> import glob
> import py2exe
> import zlib
> import shutil
>
> shutil.rmtree("build", ignore_errors=True)
> shutil.rmtree("dist", ignore_errors=True)
>
> data = []
>
> baseFolder, progFolder = os.path.split(os.getcwd())
>
> pyMSdlls = glob.glob(r"C:\PyMSdlls\*.*")
>
> data += [("Microsoft.VC90.CRT", pyMSdlls),
> ("lib\Microsoft.VC90.CRT", pyMSdlls),]
>
> setup(
> data_files = data,
> zipfile = "lib\library.zip",
> windows=["SimpleApp.py"]
> )
>
>
I am not sure but I think for zipfile to work you should also set the
options "compressed=2" and "bundle_file=3"
Werner
Bill Lewis Jr wrote:
> Werner it does not generate anything at all. All it says is Can't
> find MSVCP90.dll and the dist directory is empty. It does not mention
> where it is looking for it.
>
Then I would guess that you don't have a copy in Python 2.6 folder or
your sxs folder which contains it is not found.
In my py2.6 on Vista folder I have, if IIRC I copied them to that folder.
msvcm90.dll
msvcp90.dll
msvcr90.dll
no ms.vc90 manifest
I also have two copies in "W:\Windows\winsxs" v 21022 and v 30729.
In my py2.6 on Windows 7 folder I have, installed with the option "for
me only":
msvcr90.dll
plus the ms.vc90 manifest
Here again I also have two copies in "W:\Windows\winsxs" v 21022 and v 30729
Werner