[Distutils] py2exe and eggs

Phillip J. Eby pje at telecommunity.com
Fri Aug 19 21:33:16 CEST 2005


At 03:01 PM 8/19/2005 -0400, Kevin Dangoor wrote:
>On 8/19/05, Jay Parlar <parlar at gmail.com> wrote:
> > They were both in site-packages, and in easy_install.pth, they were
> > installed in the typical easy_install.py manner. But as the origins of
> > this email thread showed, I was having trouble getting py2exe to see
> > them even there.
>
>Did you try installing them with the -Z (--always-unzip) option? Just
>curious if that makes any difference to how py2exe works its
>dependency magic.
>
>I do remember encountering some of these stdlib problems myself, but
>not since early on when I started playing with setuptools. I only have
>a handful of the packages I use turned into eggs at this point,
>though.

Yeah, I'm starting to think that the ultimate solution to this is going to 
be to build Bob Ippolito's modulegraph into setuptools, and put external 
import info into the egg metadata at build time.  Then tools like py2exe 
and py2app could just read the metadata for all the external packages 
you're using.  bdist_egg already has to scan all your modules if you don't 
specify a zip_safe flag, so having it build a dependencies list too 
probably isn't a big deal.

For that matter, maybe I should add a "basket" command that builds a nice 
library.zip with pkg_resources, the application, and all its eggs.  Then 
commands like py2exe and py2app could just focus on making the front-end 
wrappers, rather than on the grunt work of figuring out what modules the 
application needs.

I'm not sure how well that would work with all of e.g. py2exe's 
special-casing of various DLLs and whatnot, though.  Nonetheless, I'd like 
to hear Bob and Thomas' thoughts on the idea, as it would let us 
consolidate some of the infrastructure and maybe make cross-platform apps 
buildable from a single setup script.  (Especially if most of the 
py2exe-specific or py2app-specific options can be moved to setup.cfg, where 
they'll only be processed if running that particular command.)



More information about the Distutils-SIG mailing list