app runs fine with interpreter, but not under py2exe
Thomas Heller
theller at ctypes.org
Sun Mar 16 07:01:42 EDT 2008
Doug Morse schrieb:
> Peter,
>
> Genius! You nailed it -- thanks!
>
> py2exe is apparently getting confused by the fact that packages "Numeric" and
> "numpy" both have files multiarray.pyd and umath.pyd. It copies just one of
> each -- from $PYTHONHOME/Lib/site-packages/numpy/core -- and puts both of them
> into the top-level of the created "dist" directory. Also, there are no such
> files as multiarray.pyc and umath.pyc in my python installation, but py2exe
> seems to create these (in the dist and dist/numpy/core directories) -- they
> are small (e.g., 526 bytes) and I'm guessing that they are stubs that simply
> point python to the matching .pyd that py2exe relocated.
[...]
>
> Just for completeness and perhaps a bit of additional clarity, here's a
> limited directory listing of what the steps in the previous paragraph produce:
>
> morse> find dist | egrep "(multia|umath)" | xargs ls -l
> -rwxr-xr-x 1 morse None 26624 Nov 28 2006 dist/multiarray.pyd
> -rwxr-xr-x 1 morse None 348160 Nov 8 16:16 dist/numpy/core/multiarray.pyd
> -rwxr-xr-x 1 morse None 192512 Nov 8 16:16 dist/numpy/core/umath.pyd
> -rwxr-xr-x 1 morse None 54272 Nov 28 2006 dist/umath.pyd
>
[...]
> Is this something I should pursue getting the py2exe folks to fix / work with
> them on fixing? In investigating this issue, I noted that a lot of other
> py2exe problems seem to revolve around confusions when duplicate files exist
> in different modules. I wouldn't thinking that getting py2exe to pay better
> attention to the containing modules when building it's dependency tree would
> be that difficult (or is it)?
I have the impression that this issue may already be fixed in py2exe CVS but
noone bothered to do a release. Here is the corresponding changelog entry:
* build_exe.py: Patch from Grant Edwards, slightly adjusted:
py2exe now renames the pyd files that it copies into the dist
directory so that they include the package name. This prevents
name conflicts.
I have created installers and uploaded them (for testing!) to the starship:
http://starship.python.net/crew/theller/py2exe-0.6.7.win32-py2.3.exe
http://starship.python.net/crew/theller/py2exe-0.6.7.win32-py2.4.exe
http://starship.python.net/crew/theller/py2exe-0.6.7.win32-py2.5.exe
Please try them out.
Thanks,
Thomas
More information about the Python-list
mailing list