[Distutils] [Py2exe-users] Re: py2exe and setuptools w/ install_requires

Chris Lambacher chris at kateandchris.net
Fri Jan 20 20:58:39 CET 2006

On Fri, Jan 20, 2006 at 12:35:56PM -0500, Phillip J. Eby wrote:
> At 06:25 PM 01/19/2006 -0500, Chris Lambacher wrote:
> >Hi,
> >
> >I have several apps that I distribute to customers using py2exe.  I have 
> >also
> >written modules which these apps share.  Up to now I have not had any
> >modules written in C so to build my py2exe apps I just set the PYTHONPATH
> >environment variable to point to the module's location in CVS and run 
> >setup.py
> >py2exe.  This is convenient because release builds are done via Buildbot 
> >on a
> >dedicated computer.  All buildbot has to do is check out the source and run
> >setup.py.
> >
> >I now have my first C module and have been trying to work out how to deal 
> >with
> >building the module.  I would prefer to build the module and 'release' it 
> >for
> >use with my two apps.
> >
> >What I would like to do is build up an egg for the library and copy it to a
> >known location.  Then have the apps use the setuptools require_install
> >directive to allow me to get the egg and 'install' it into the build 
> >directory
> >somewhere and then let the rest of the py2exe magic work.
> >
> >I think I know where to add my call into setuptools from py2exe, but I 
> >cannot
> >figure out what setup_tools function to call in order to do the
> >'installation'.
> Run "setup.py develop" in the source tree of each project, starting with 
> the dependencies and working your way up to the main application.  Then run 
> py2exe.
> See also the py2exe Wiki, which has a page of tips for using py2exe with 
> eggs.  However, if you have source checkouts for all the things your 
> application includes, you don't need to worry about unzipping eggs.
This is almost what I want, but I want to release my modules and have my app
builds pick them up as eggs.

When I build my module eggs, I publish them to a directory
that an http server indexes.  I then I have a build script that calls
'easy_install -m -Z -d tmpdir -f http://myserver/eggs module' for each module
that I am interested in.  Then I add all the new directories in tmpdir to my
python path and call setup.py py2exe.  

The advantage of this is that each time I  build I could potentially be using
a different version of the module.  I don't have to worry about not getting
updates to that libarary because I am building a point release of my app on
some strange branch.

I wanted to make this action triggered by install_requires in the py2exe
command, I am instead doing this externally before the py2exe command.
> Note that this will *not* include egg metadata in your .exe build, so if 
> you are using packages that require such metadata, they may not work 
> correctly when embedded.
Not a problem for me, I am not that sofisticated yet :)

Thanks for the help,

More information about the Distutils-SIG mailing list