2010-08-02 06:06:02 +00:00
|
|
|
This is the "zetuptoolz" fork of setuptools. This version is forked from
|
|
|
|
setuptools trunk r80621 (which is current as of 2010-08-31), with the following
|
|
|
|
differences:
|
|
|
|
|
|
|
|
|
|
|
|
* Zooko's patches for the following bugs and features have been applied:
|
|
|
|
|
|
|
|
<http://bugs.python.org/setuptools/issue17>
|
|
|
|
"easy_install will install a package that is already there"
|
|
|
|
|
|
|
|
<http://bugs.python.org/setuptools/issue54>
|
|
|
|
"be more like distutils with regard to --prefix="
|
|
|
|
|
|
|
|
<http://bugs.python.org/setuptools/issue53>
|
|
|
|
"respect the PYTHONPATH"
|
2010-08-03 00:38:15 +00:00
|
|
|
(Note: this patch does not work as intended when site.py has been modified.
|
|
|
|
This will be fixed in a future version.)
|
2010-08-02 06:06:02 +00:00
|
|
|
|
|
|
|
|
|
|
|
* The following patch to setuptools introduced bugs, and has been reverted
|
|
|
|
in zetuptoolz:
|
|
|
|
|
|
|
|
$ svn log -r 45514
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
r45514 | phillip.eby | 2006-04-18 04:03:16 +0100 (Tue, 18 Apr 2006) | 9 lines
|
|
|
|
|
|
|
|
Backport pkgutil, pydoc, and doctest from the 2.5 trunk to setuptools
|
|
|
|
0.7 trunk. (Sideport?) Setuptools 0.7 will install these in place of
|
|
|
|
the 2.3/2.4 versions (at least of pydoc and doctest) to let them work
|
|
|
|
properly with eggs. pkg_resources now depends on the 2.5 pkgutil, which
|
|
|
|
is included here as _pkgutil, to work around the fact that some system
|
|
|
|
packagers will install setuptools without overriding the stdlib modules.
|
|
|
|
But users who install their own setuptools will get them, and the system
|
|
|
|
packaged people probably don't need them.
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
2010-08-03 00:38:15 +00:00
|
|
|
* If unpatched setuptools decides that it needs to change an existing site.py
|
|
|
|
file that appears not to have been written by it (because the file does not
|
|
|
|
start with "def __boot():"), it aborts the installation.
|
|
|
|
zetuptoolz leaves the file alone and outputs a warning, but continues with
|
|
|
|
the installation.
|
|
|
|
|
|
|
|
|
2010-08-02 06:06:02 +00:00
|
|
|
* The scripts written by zetuptoolz have the following extra line:
|
|
|
|
|
|
|
|
# generated by zetuptoolz <version number>
|
|
|
|
|
|
|
|
after the header.
|
|
|
|
|
|
|
|
|
|
|
|
* Windows-specific changes (native Python):
|
|
|
|
|
|
|
|
Python distributions may have command-line or GUI scripts.
|
|
|
|
On Windows, setuptools creates an executable wrapper to run each
|
|
|
|
script. zetuptools uses a different approach that does not require
|
|
|
|
an .exe wrapper. It writes approximately the same script file that
|
|
|
|
is used on other platforms, but with a .pyscript extension.
|
|
|
|
It also writes a shell-script wrapper (without any extension) that
|
|
|
|
is only used when the command is run from a Cygwin shell.
|
|
|
|
|
|
|
|
Some of the advantages of this approach are:
|
|
|
|
|
|
|
|
* Unicode arguments are preserved (although the program will
|
|
|
|
need to use some Windows-specific code to get at them in
|
|
|
|
current versions of Python);
|
|
|
|
* it works correctly on 64-bit Windows;
|
|
|
|
* the zetuptoolz distribution need not contain either any
|
|
|
|
binary executables, or any C code that needs to be compiled.
|
|
|
|
|
|
|
|
See setuptools\tests\win_script_wrapper.txt for further details.
|
|
|
|
|
|
|
|
Installing or building any distribution on Windows will automatically
|
|
|
|
associate .pyscript with the native Python interpreter for the current
|
|
|
|
user. It will also add .pyscript and .pyw to the PATHEXT variable for
|
|
|
|
the current user, which is needed to allow scripts to be run without
|
|
|
|
typing any extension.
|
|
|
|
|
|
|
|
There is an additional setup.py command that can be used to perform
|
|
|
|
these steps separately (which isn't normally needed, but might be
|
|
|
|
useful for debugging):
|
|
|
|
|
|
|
|
python setup.py scriptsetup
|
|
|
|
|
|
|
|
Adding the --allusers option, i.e.
|
|
|
|
|
|
|
|
python setup.py scriptsetup --allusers
|
|
|
|
|
|
|
|
will make the .pyscript association and changes to the PATHEXT variable
|
|
|
|
for all users of this Windows installation, except those that have it
|
|
|
|
overridden in their per-user environment. In this case setup.py must be
|
|
|
|
run with Administrator privileges, e.g. from a Command Prompt whose
|
|
|
|
shortcut has been set to run as Administrator.
|