User:Σ/Testing facility/Protoss
This is not a Wikipedia article: This is a workpage, a collection of material and work in progress that may or may not be incorporated into an article. It should not necessarily be considered factual or authoritative. |
The Python Package Index, abbreviated as PyPI and also known as the Cheese Shop,[1] is the official third-party software repository for Python.[2] It is analogous to CPAN, the repository for Perl.[3] Some package managers, including pip, use PyPI as the default source for packages and their dependencies.[4][5] 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.[6] Over 10,000 Python packages can be accessed through PyPI.[7]
History
[edit]The Python Distribution Utilities (distutils) Python module was first added to the Python standard library in the 1.6.1 release, in September 2000,[8] and in the 2.0 release, in October 2000.[9] 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 included mechanisms for the capture of package metadata, but did little with the metadata save ship it with the package.[10] 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 this centralised catalog, hosted at the python.org domain, was later finalised in November 2002.[10]
Structure
[edit]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.[6] PyPI primarily hosts Python packages in the form of archives known as Python Eggs. Similarly to JAR archives in Java,[11] 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.[12][13]
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.[14] 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,[15] precompiled eggs (e.g. containing DLLs on Windows), as well as different forms for operating system or Python version incompatibilities.
Notes
[edit]References
[edit]- ^ Lutz 2006, p. 8.
- ^ Hylton, Jeremy (24 September 2003). "Python Package Index Tutorial". Jeremy Hylton. Archived from the original on 22 April 2012. Retrieved 22 April 2012.
- ^ Barry 2010, p. 36.
- ^ "Usage". pip 1.1.post1 documentation. The pip developers. Archived from the original on 22 April 2012.
- ^ "PyPI mirrors". Python Package Index. Python Software Foundation. Archived from the original on 22 April 2012. Retrieved 22 April 2012.
- ^ a b Hussain 2011, p. 28.
- ^ Helmke, Hudson & Hudson 2010.
- ^ "Python 1.6.1". Python Software Foundation. Retrieved 24 April 2012.
- ^ "What's New in Python 2.0". Python Software Foundation. Retrieved 2 August 2016.
- ^ a b "PEP 301 -- Package Index and Metadata for Distutils". Python Software Foundation. 24 October 2002. Retrieved 3 June 2012. This article incorporates text from this source, which is in the public domain.
- ^ Mertz, David (24 October 2006). "Charming Python: Hatch Python eggs with setuptools". Retrieved 7 June 2012.
- ^ Gebel, Harry (22 April 2000). "[Distutils] INSTALL file". distutils-sig (Mailing list). Retrieved 2 August 2016.
- ^ One can view descriptions of the listed .py files by observing the format at command_template: "distutils2: 65e23cccd0db". Python Software Foundation. 27 October 2012. Retrieved 2 August 2016.
- ^ "Browse : Python Package Index". Python Software Foundation. Retrieved 2 August 2016.
- ^ "Documentation of various Python packages". Retrieved 2 August 2016.
Bibliography
[edit]- Barry, Paul (2010). Head First Python. O'Reilly Media, Inc. ISBN 978-1-4493-8267-4.
- Alchin, Marty (2010). Pro Python. Apress. ISBN 978-1-4302-2757-1.
- Helmke, Matthew; Hudson, Andrew; Hudson, Paul (2010). Ubuntu Unleased (6 ed.). Pearson Education. ISBN 978-0-672-33344-6.
- Hussain, Zahid (2011). "Proceedings of the Fall 2010 Future SOC Lab Day". Technische Berichte des Hasso-Plattner-Instituts für Softwaresystemtechnik an der Universität Potsdam (42). Universitätsverlag Potsdam. ISBN 978-3-86956-114-1.
- Martelli, Alex (2006). Python in a Nutshell. O'Reilly Media, Inc. ISBN 9780596100469.
- Lutz, Mark (2006). Programming Python. Vol. 10 (3 ed.). O'Reilly Media, Inc. ISBN 9780596009250.