Skip to main content

Download, build, install, upgrade, and uninstall Python packages -- easily!

Project description

``setuptools`` is a collection of enhancements to the Python ``distutils``
(for Python 2.3.5 and up on most platforms; 64-bit platforms require a minimum
of Python 2.4) that allow you to more easily build and distribute Python
packages, especially ones that have dependencies on other packages.

Packages built and distributed using ``setuptools`` look to the user like
ordinary Python packages based on the ``distutils``. Your users don't need to
install or even know about setuptools in order to use them, and you don't
have to include the entire setuptools package in your distributions. By
including just a single `bootstrap module`_ (an 8K .py file), your package will
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:

Feature Highlights:

* Automatically find/download/install/upgrade dependencies at build time using
the `EasyInstall tool <>`_,
which supports downloading via HTTP, FTP, Subversion, and SourceForge, and
automatically scans web pages linked from PyPI to find download links. (It's
the closest thing to CPAN currently available for Python.)

* Create `Python Eggs <>`_ -
a single-file importable distribution format

* Include data files inside your package directories, where your code can
actually use them. (Python 2.4 distutils also supports this feature, but
setuptools provides the feature for Python 2.3 packages also, and supports
accessing data files in zipped packages too.)

* Automatically include all packages in your source tree, without listing them
individually in

* Automatically include all relevant files in your source distributions,
without needing to create a ```` file, and without having to force
regeneration of the ``MANIFEST`` file when your source tree changes.

* Automatically generate wrapper scripts or Windows (console and GUI) .exe
files for any number of "main" functions in your project. (Note: this is not
a py2exe replacement; the .exe files rely on the local Python installation.)

* Transparent Pyrex support, so that your can list ``.pyx`` files and
still work even when the end-user doesn't have Pyrex installed (as long as
you include the Pyrex-generated C in your source distribution)

* Command aliases - create project-specific, per-user, or site-wide shortcut
names for commonly used commands and options

* PyPI upload support - upload your source distributions and eggs to PyPI

* Deploy your project in "development mode", such that it's available on
``sys.path``, yet can still be edited directly from its source checkout.

* Easily extend the distutils with new commands or ``setup()`` arguments, and
distribute/reuse your extensions for multiple projects, without copying code.

* Create extensible applications and frameworks that automatically discover
extensions, using simple "entry points" declared in a project's setup script.

In addition to the PyPI downloads, the development version of ``setuptools``
is available from the `Python SVN sandbox`_, and in-development versions of the
`0.6 branch`_ are available as well.

.. _0.6 branch:

.. _Python SVN sandbox:

Project details

Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
setuptools-0.6b1-py2.3.egg (980.6 kB) Copy SHA256 hash SHA256 Egg 2.3 May 12, 2006
setuptools-0.6b1-py2.4.egg (307.8 kB) Copy SHA256 hash SHA256 Egg 2.4 May 12, 2006 (248.1 kB) Copy SHA256 hash SHA256 Source None May 12, 2006

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page