[Distutils] [setuptools] best way to create offline install bundles?
Phillip J. Eby
pje at telecommunity.com
Fri Sep 8 19:38:06 CEST 2006
At 09:14 AM 9/8/2006 -0400, Kevin Dangoor wrote:
>I've had quite a few complaints over the months from people who are
>stuck behind firewalls and can't install TurboGears with easy_install
>for whatever reason. This problem is somewhat compounded in cases
>where the user may have a machine that has internet access, but isn't
>the same platform as their deployment machine so they wouldn't even
>get the right eggs to deploy with easy_install.
>What I ultimately want to end up with is a tarball that contains all
>of the platform independent stuff, and then three tarballs for the
>platform dependent stuff (win, mac, source).
>I know about easy_install -zmaxd, and that certainly helps... but
>1) it doesn't keep all of the eggs zipped up (because it sitll thinks
>it's doing an install, instead of just a download)
Huh? -z should force it to never unzip eggs. Are you sure it's doing that?
>2) it doesn't help with the three platform dependent parts
>Is this something zc.buildout can help with? I'm not certain what the
>best way is to automate this process...
If I were in your shoes, I'd certainly take a look at zc.buildout, although
I don't know if it has everything you'll need.
It would be nice, though, if you ended up with a tool that could be used to
build a tarball bundle of any project, not just turbogears. Bonus points
if the tarball contains everything in --single-version-externally-managed
form, so somebody can just extract it and put it in a directory on
(Note that to create the SVEM form of an egg, you just rename the EGG-INFO
directory to package-version-pyver-platform.egg-info during extraction; an
easy trick using setuptools.archive_util.)
Oh, and extra extra bonus points if this thing can become something like
"bdist_eggbundle" and was usable via setuptools. Then, you could just run
something like "setup.py bdist_eggbundle --platform=XXX" to build one for
each platform. :)
More information about the Distutils-SIG