[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,
Chris
More information about the Distutils-SIG
mailing list