[IPython-dev] Distribution via "Easy Install"?

Fernando Perez Fernando.Perez at colorado.edu
Thu Dec 22 14:42:35 CST 2005

Hey Robert,

as usual, thanks for the useful, detailed reply.

Robert Kern wrote:
> Ville Vainio wrote:
>>Anyone looked into distributing IPython via easy-install mechanism yet?
> To consolidate replies to a few messages:
> * ipython builds as an egg just fine out-of-box. It is not zip-safe since it
> uses a few __file__ thingies, but that's okay. easy_install correctly unpacks
> the egg. You can build ipython as an egg without changing the source:
>   $ python -c "import setuptools; execfile('setup.py')" bdist_egg
> Of course, easy_install will do this for you.

This is for _building_ an egg, right?  Should I distribute the .egg in this 
manner as well at ipython/dist?  I'm perfectly happy installing setuptools and 
adding the above to my release script, but I don't know if that's the 
preferred mechanism.

> * I'm not entirely sure what needs to happen with the post-install script on
> Windows. Possibly make it a module in the IPython package so that one could do
>   In [1]: from IPython.win32_post_install import run
>   In [2]: run()

This would be easy: I leave it out for cleanliness, but it's not really a big 
deal if there is a significant win.

> manual.pdf might have to be made package_data in that case, though.
> * The /usr/bin/ipython contents that Ville posted is automatically generated by
> easy_install (the actual scripts live inside the egg; the scripts installed to
> /usr/whatever/bin are bootstraps to load and run those scripts), so Fernando
> doesn't need to worry about wrapping anything with try: except: blocks.

Do you mean that we shouldn't add 'import egg_stuff' _anywhere_ in the ipython 
code, or do you refer only to the scripts?  If the latter, which components do 
still require egg yolks in them?

> * I think the only thing that really needs to happen now is that the PyPI record
> needs a link to the actual download location or the tarballs could be uploaded
> to PyPI itself.

I can do that, as I already register.  Should this be a link to the actual raw 

> * However, setuptools and pkg_resources (the module that handles the resource
> location and extraction from zipped eggs; included with setuptools) are fairly
> stable and useful. easy_install is possibly still problematic for non-root UNIX
> installs, but I think even that is probably okay now if you ignore the
> ez_setup.py bootstrap. In any case, setuptools and pkg_resources can be used to
> good effect without thrusting easy_install's problems on anyone. Using recent
> (last week or so) setuptools, one can now install setuptoolized packages as
> regular packages with the egg metadata alongside rather than full eggs:
>   $ python setup.py install --single-version-externally-managed

Thanks again.  With some guidance from those who know eggs better, I'll be 
happy to add the relevant support.



More information about the IPython-dev mailing list