setuptools is a
package development process
A software package development process is a system for developing software packages. Packages make it easier to reuse and share code, e.g., via a software repository. A formal system for package checking can help expose bugs, thereby potentially ...
library designed to facilitate packaging
Python
Python may refer to:
Snakes
* Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia
** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia
* Python (mythology), a mythical serpent
Computing
* Python (pro ...
projects by enhancing the Python standard library (distribution utilities). It includes:
*Python package and module definitions
*Distribution package metadata
*Test hooks
*Project installation
*Platform-specific details
*Python 3 support
History
On 2004-03-17, Phillip J. Eby announced the existence of the project. In 2013, Distribute, a fork of setuptools, was merged back into setuptools 0.7.
Package format
Python wheels have replaced eggs.
Python eggs are a way of bundling additional information with a Python project, that allows the project's dependencies to be checked and satisfied at runtime, as well as allowing projects to provide
plugins for other projects.
Package manager
Python pip has replaced EasyInstall.
''EasyInstall'' is a
package manager
A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.
A package manager deals wi ...
for Python that provides a standard format for distributing Python programs and
libraries
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
(based on the Python Eggs format). EasyInstall is a module bundled with setuptools. It is analogous to
RubyGems
RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries (in a self-contained format called a "gem"), a tool designed to easily manage the installation of gems ...
for
Ruby
A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sa ...
.
EasyInstall is not a fully fledged package manager. It cannot list local packages nor update them all.
Pip and
Python Package Manager
Python Package Manager (''PyPM'') is a Python utility intended to simplify the tasks of locating, installing, upgrading and removing Python packages. It can determine if the most recent version of a software package is installed on a system, and ca ...
(PyPM) are Python applications designed to fulfill a similar role as EasyInstall. The Distribute fork was created specifically due to the lack of progress in EasyInstall development.
By default, EasyInstall looks in the
Python Package Index
The Python Package Index, abbreviated as PyPI () and also known as the Cheese Shop (a reference to the ''Monty Python's Flying Circus'' sketch " Cheese Shop"), is the official third-party software repository for Python. It is analogous to the CP ...
(PyPI) for the desired packages and uses the metadata there to download and install the package and its dependencies.
See also
*
Buildout
Buildout is an open-source software build tool. Buildout is created using the Python programming language. It implements a principle of separation of configuration from the scripts that do the setting up.
Buildout is primarily used to download a ...
- software build tool designed to handle Python package dependencies
*
Software repository
A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source control or repository managers. Package ...
References
External links
*
PyPI project page*
{{Package management systems
Free package management systems