IDLEfork Installation Notes
===========================

IDLEfork requires Python Version 2.2 or later.

There are several distribution files (where xx is the subversion):

IDLEfork-0.9xx.win32.exe
	This is a Windows installer which will install IDLEfork in 
	..../site-packages/idleforklib/ and place the idefork startup script
	at ..../scripts/idlefork.  Rename this to idlefork.pyw and
	point your launcher icons at it.  Installation is as idlefork
	to avoid conflict with the original Python IDLE.

IDLEfork-0.9xx-1.noarch.rpm 
	This is an rpm which is designed to install as idleforklib in the
	/usr/lib/python2.2 tree created by the Python2 rpm.  It requires
	python2 and python2-tkinter rpms.  It installs as idlefork to avoid
	conflict with Python IDLE.

IDLEfork-0.9xx.tar.gz
	This is a distutils sdist (source) tarfile which can be used to make 
	installations on platforms not supported by the above files.
	It remains configured to install as IDLE, not IDLEfork.

	Unpack in ..../Tools/, cd to the IDLEfork directory created, and
	<python setup.py install> to install in ....site-packages/idlelib.  

        If you don't want to overwrite Python IDLE, it is also possible to
	simply run <python idle.py> to test in the IDLEfork source directory
	without making an installation.  In this case, IDLE will not be on
	your PATH unless you are in the source directory.  Also, it is then
	advisable to remove any Python IDLE installation by removing
	..../site-packages/idlelib so the two identically named packages don't
	conflict.

See README.txt for more details on this version of IDLEfork. 






