Neha Patil (Editor)

Python Package Index

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

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.

Contents

History

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.

Structure

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.

PyPI as an index allows users to search for packages by keywords or by filters against their metadata, such as free software license or compatibility with POSIX. A single entry on PyPI is able to store, aside from just a package and its metadata, previous releases of the package, the package's HTML documentation, precompiled eggs (e.g. containing DLLs on Windows), as well as different forms for operating system or Python version incompatibilities.

References

Python Package Index Wikipedia