[Distutils] Unexpected easy_install -zmaxd behavior when package is already installed

David Genest david.genest at ubisoft.com
Mon Nov 5 21:14:56 CET 2012


> > I want to be able to manage an egg cache to be used in a local
> > installation workflow: download the package and build the eggs in a
> > defined directory.
> 
> 
> E.g. Like what Buildout does for you?

Haven't looked at this. Will do, thank you.

> >
> > I first download the package using the documented approach of getting
> > the packages built into eggs in a directory:
> >
> > easy_install -zmaxd [my_dir]
> >
> > I would expect to have zipped eggs at the "my_dir" destination.
> 
> 
> my_dir is not the destination it's the requirement_or_url e.g.
> Something with a setup.py in it.

Sorry, my usage was not complete. If you do: 
$ mkdir tmp  
$ easy_install -zmaxd tmp/ pyramid

All the packages and dependencies of pyramid will be downloaded locally in the tmp/ directory. As per: http://packages.python.org/distribute/easy_install.html#installing-on-un-networked-machines

>
> >
> > This works as expected only if I start from a clean virtualenv.
> >
> > If the environment is already populated (or installed) with the
> > package I want to cache, it is this package (from site-packages) that
> > is taken to my cache directory, not the zipped egg (I presume because
> > the package is not zip safe).
> >
> > Is there a way around this behaviour?
> 
> I don't fully understand, but I expect this may be normal given the
> contraints above (i.e. easy_install does not understand what you intend
> by specifying "my_dir" AFAICT).

For my specific pyramid example above, if the virtualenv I start from is empty, the pyramid and dependencies eggs are put and built in the tmp/ dir. Otherwise, if the environment has pyramid installed, the eggs are unzipped (as they are when installed) in the tmp/ directory. 



More information about the Distutils-SIG mailing list