automatically download and install ``setuptools`` if the user is building your
package from source and doesn't have a suitable version already installed.
-.. _bootstrap module: http://cdn.bitbucket.org/tarek/distribute/downloads/
+.. _bootstrap module: http://cdn.bitbucket.org/tarek/distribute/downloads/.py
.. contents:: **Table of Contents**
ez_setup.py: `bootstrap module`_
+.. _.py: `bootstrap module`_
If you want the current in-development version of setuptools, you should first
install a stable version, and then run::
+ .py setuptools==dev
This will download and install the latest development (i.e. unstable) version
of setuptools from the Python Subversion sandbox.
Your users might not have ``setuptools`` installed on their machines, or even
if they do, it might not be the right version. Fixing this is easy; just
ez_setup.py`_, and put it in the same directory as your ``setup.py``
+download `.py`_, and put it in the same directory as your ``setup.py``
script. (Be sure to add it to your revision control system, too.) Then add
these two lines to the very top of your setup script, before the script imports
anything from setuptools::
-That's it. The ``ez_setup`` module will automatically download a matching
+That's it. The ``bootstrapping`` module will automatically download a matching
version of ``setuptools`` from PyPI, if it isn't present on the target system.
Whenever you install an updated version of setuptools, you should also update
-your projects' ``
ez_setup.py`` files, so that a matching version gets installed
+your projects' ``.py`` files, so that a matching version gets installed
on the target machine(s).
By the way, setuptools supports the new PyPI "upload" command, so you can use
setuptools and ``easy_install``.
- If your project is using ``ez_setup``, you should inform users of the need
- to either have network access, or to preinstall the correct version of
+ If your project is using ``bootstrapping``, you should inform users of the
+ need to either have network access, or to preinstall the correct version of
setuptools using the `EasyInstall installation instructions`_. Those
instructions also have tips for dealing with firewalls as well as how to
manually download and install setuptools.
Managing Multiple Projects
-If you're managing several projects that need to use ``ez_setup``, and you are
-using Subversion as your revision control system, you can use the
-"svn:externals" property to share a single copy of ``ez_setup`` between
+If you're managing several projects that need to use ``bootstrapping``, and you
+are using Subversion as your revision control system, you can use the
+"svn:externals" property to share a single copy of ``bootstrapping`` between
projects, so that it will always be up-to-date whenever you check out or update
an individual project, without having to manually update each project to use
However, because Subversion only supports using directories as externals, you
-have to turn ``ez_setup.py`` into ``ez_setup/__init__.py`` in order to do this,
-then create "externals" definitions that map the ``ez_setup`` directory into
-each project. Also, if any of your projects use ``find_packages()`` on their
-setup directory, you will need to exclude the resulting ``ez_setup`` package,
-to keep it from being included in your distributions, e.g.::
+have to turn ``bootstrapping.py`` into ``bootstrapping/__init__.py`` in order
+to do this, then create "externals" definitions that map the ``bootstrapping``
+directory into each project. Also, if any of your projects use
+``find_packages()`` on their setup directory, you will need to exclude the
+resulting ``bootstrapping`` package, to keep it from being included in your
- packages = find_packages(exclude=['
+ packages = find_packages(exclude=['']),
-Of course, the ``ez_setup`` package will still be included in your packages'
-source distributions, as it needs to be.
+Of course, the ``bootstrapping`` package will still be included in your
+packages' source distributions, as it needs to be.
For your convenience, you may use the following external definition, which will
track the latest version of setuptools::
Reusing ``setuptools`` Code