[Python-Dev] installing IDLE & other Tools

Guido van Rossum guido@python.org
Tue, 14 Nov 2000 08:29:17 -0500

> [Jeremy Hylton]
> > We've discussed installation of other tools once or twice, but I've
> > never decided what exactly to do.  The compiler package, for example,
> > comes with a distutils setup.py script that will do the job.  I think
> > the best way to move forward is to write setup.py scripts for all the
> > other tools that ought to be installed.
> That does seem reasonable. It seems the most non-intrusive, since we
> get out of the way of proffessional packages, while still giving them
> something to start from.


> > I don't know how to package up idle cleanly, though.  I need to decide
> > what to install and where to install it.  The Tools/idle directory is
> > nominally a package, but it doesn't seem like that will help much for
> > installing it.  If we want to call the executable script idle.py, it
> > will clash with the idle package name.  Any advice here?  It doesn't
> > seem like there is any obvious way to "install" IDLE; it looks like it
> > is intended to be run out of the source directory.
> I don't think we want to call the executable script idle.py. Each platform
> will have it's own problems with it: for UNIXish stuff, call it "idle".
> For windowish stuff, it's better to call it "idle.pyw" anway. Both of those
> should *not* be in the same directory as the idle package. In the UNIX
> case it should be in $prefix/bin, and in the windows case, it should be
> where python.exe is.

For Windows, the IDLE problem is solved: it's installed in directory
<topdir>/Tools/idle/ and there's a link to it in the start menu.  It's
not directly accessible from the command line -- but on Windows,
nobody cares about the command line.

Maybe we can extend this idea to Unix.  Concrete proposal: install
IDLE as <prefix>/lib/python<version>/site-packages/Tools/idle/, and
place a symlink or 2-line bootstrap script in <prefix>/bin/idle.

The introduction of the extra directory level "Tools" implies that
idle is not importable as a package from regular Python.  This is how
I want it -- otherwise I could/would have made IDLE a package in the
Lib/lib-tk directory instead of a directory in Tools.

I'd gladly accept a contribution of a setup.py file that does this for
me.  (I looked at the distutils manual for a bit but decided that I'd
have to read it cover-to-cover to figure out whether what I want is
even possible...)

--Guido van Rossum (home page: http://www.python.org/~guido/)