*** Welcome to piglix ***

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 CPAN, the repository for Perl. Some package managers, including pip, use PyPI as the default source for packages and their dependencies. Although code authors may use PyPI to host actual files, they can also choose to only place an external link that leads to the project home page on the index page. Over 86,000 Python packages can be accessed through PyPI.

The Python Distribution Utilities (distutils) Python module was first added to the Python standard library in the 1.6.1 release, in September 2000, and in the 2.0 release, in October 2000. with the goal of simplifying the process of installing third-party Python packages.

However, distutils only provided the tools for packaging Python code, and no more. It was able to collect and distribute metadata but did not use it for other purposes. Python still lacked a centralised catalog for packages on the internet. PEP 241, a proposal to standardise metadata for indexes, was finalised in March 2001. A proposal to create a comprehensive centralised catalog, hosted at the python.org domain, was later finalised in November 2002.

Although code authors may use PyPI to host actual files, they can also choose to only place an external link that leads to the project home page on the index page. PyPI primarily hosts Python packages in the form of archives known as Python Eggs. Similarly to JAR archives in Java, Eggs are fundamentally ZIP files, but with the .egg extension, that contains the Python code for the package itself, and a setup.py file that holds the package's metadata. The setup.py file also constitutes the entry point to managing the package: by executing it, the user can perform actions such as creating Eggs, RPM archives, or Windows Installers of the package's source code; building certain portions of the package; installing the package directly to the system; running unit tests; or uploading the package back to PyPI.


...
Wikipedia

...