= setuptools [http://peak.telecommunity.com/DevCenter/setuptools setuptools] is a Python module that helps to compile, distribute and install Python packages by wrapping them into "egg"s. Eggs contain additional information to process dependencies, etc. Installed setuptools version can be checked with the following commands (should work for other Python packages too): {{{#!sh $ python Python 2.3.5 >>> import setuptools >>> setuptools.__version__ '0.7a1' }}} Setuptools can be installed using the bootstrap script from the [pypi: Python Package Indexer] ([pypi:setuptools#installation-instructions installation instructions]): {{{#!sh $ wget https://bootstrap.pypa.io/ez_setup.py -O - | python }}} Notes: - you shouldn't be using setuptools prior to **0.6c10** (if so, look for the notes in an [./@9 earlier version] of this page - if you're using Python 2.4 (still supported for 0.12-stable) or Python 2.5, you won't be able to use a recent version of setuptools. You can still install an earlier version: - grab and execute the older [http://peak.telecommunity.com/dist/ez_setup.py ez_setup.py] script, you'll then have 0.6c11, which is enough if you're installing from a trac checkout made with Subversion 1.6 but problematic for newer Subversion version - with easy_install from 0.6c11, install the latest Python 2.4/2.5 compatible version of the new setuptools: `easy_install -U setuptools==1.4.2` - if you're using setuptools versions **5.4** through **5.6**, the environment variable `PKG_RESOURCES_CACHE_ZIP_MANIFESTS` should be set, otherwise the performance of Trac will be significantly degraded. - Linux: `$ export PKG_RESOURCES_CACHE_ZIP_MANIFESTS=1` - Windows: `> set PKG_RESOURCES_CACHE_ZIP_MANIFESTS=1` More details can be found in TracInstall#DeployingTrac. setuptools include "easy_install" script for convenient installation of packages found on [pypi:setuptools/ Python Package Index] including Trac with all necessary dependencies. {{{#!sh $ python -m easy_install Trac }}} If working behind a proxy, note that easy_install will rely on environment variables (http_proxy, https_proxy, ftp_proxy). == Reference Documentation - [http://peak.telecommunity.com/DevCenter/setuptools setuptools] - [http://peak.telecommunity.com/DevCenter/PkgResources pkg_resources] (setuptools) - [http://packages.python.org/distribute/pkg_resources.html pkg_resources] (Distribute) - [http://peak.telecommunity.com/DevCenter/EggFormats .egg format] ---- See also: TracDev/Proposals/Setuptools