Original author(s) | Ian Bicking |
---|---|
Initial release | 28 October 2008 [1] |
Stable release | |
Repository | |
Written in | Python |
Operating system | OS-independent |
Platform | Python |
Type | Package management system |
License | MIT [3] |
Website | pip |
pip (also known by Python 3's alias pip3) is a package-management system written in Python and is used to install and manage software packages. [4] The Python Software Foundation recommends using pip for installing Python applications and its dependencies during deployment. [5] Pip connects to an online repository of public packages, called the Python Package Index. Pip can be configured to connect to other package repositories (local or remote), provided that they comply to Python Enhancement Proposal 503. [6] [7]
Most distributions of Python come with pip preinstalled. Python 2.7.9 and later (on the python2 series), and Python 3.4 and later include pip by default. [8]
First introduced as pyinstall in 2008 by Ian Bicking (the creator of the virtualenv package) as an alternative to easy install, [9] [10] pip was chosen as the new name from one of several suggestions that the creator received on his blog post. [11] According to Bicking himself, the name is a recursive acronym for "Pip Installs Packages". [12] In 2011, the Python Packaging Authority (PyPA) was created to take over the maintenance of pip and virtualenv from Bicking, led by Carl Meyer, Brian Rosner, and Jannis Leidel. [10]
With the release of pip version 6.0 (2014-12-22), the version naming process was changed to have version in X.Y format and drop the preceding 1 from the version label. [13]
Pip's command-line interface allows the install of Python software packages by issuing a command: pip install some-package-name
Users can also remove the package by issuing a command: pip uninstall some-package-name
pip has a feature to manage full lists of packages and corresponding version numbers, possible through a "requirements" file. [14] This permits the efficient re-creation of an entire group of packages in a separate environment (e.g. another computer) or virtual environment. This can be achieved with a properly formatted file and the following command, [15] where requirements.txt is the name of the file: pip install -r requirements.txt
.
To install some package for a specific python version, pip provides the following command, where ${version}
is replaced by 2, 3, 3.4, etc.: pip${version} install some-package-name
.
Pip provides a way to install user-defined projects locally with the use of setup.py file. This method requires the python project to have the following file structure:
example_project/ ├── exampleproject/ Python package with source code. | ├── __init__.py Make the folder a package. | └── example.py Example module. └── README.md README with info of the project.
Within this structure, user can add setup.py to the root of the project (i.e. example_project
for above structure) with the following content:
fromsetuptoolsimportsetup,find_packagessetup(name='example',# Name of the package. This will be used, when the project is imported as a package.version='0.1.0',packages=find_packages(include=['exampleproject','exampleproject.*'])# Pip will automatically install the dependencies provided here.)
After this, pip can install this custom project by running the following command, from the project root directory: pip install -e
.
Besides the default PyPI repository, Pip supports custom repositories as well. [16] Such repositories can be located on an HTTP(s) URL or on a file system location.
A custom repository can be specified using the -i or—index-url option, like so: pip install -i https://your-custom-repo/simple <package name>
; or with a filesystem: pip install -i /path/to/your/custom-repo/simple <package name>
.
Slackware is a Linux distribution created by Patrick Volkerding in 1993. Originally based on Softlanding Linux System (SLS), Slackware has been the basis for many other Linux distributions, most notably the first versions of SUSE Linux distributions, and is the oldest distribution that is still maintained.
Portage is a package management system originally created for and used by Gentoo Linux and also by ChromeOS, Calculate, Sabayon, and Funtoo Linux among others. Portage is based on the concept of ports collections. Gentoo is sometimes referred to as a meta-distribution due to the extreme flexibility of Portage, which makes it operating-system-independent. The Gentoo/Alt project was concerned with using Portage to manage other operating systems, such as BSDs, macOS and Solaris. The most notable of these implementations is the Gentoo/FreeBSD project.
In software distribution and software development, a README file contains information about the other files in a directory or archive of computer software. A form of documentation, it is usually a simple plain text file called README
, Read Me
, READ.ME
, README.txt
, or README.md
SCons is a computer software build tool that automatically analyzes source code file dependencies and operating system adaptation requirements from a software project description and generates final binary executables for installation on the target operating system platform. Its function is analogous to the traditional GNU build system based on the make utility and the autoconf tools.
Maven is a build automation tool used primarily for Java projects. Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. The Maven project is hosted by The Apache Software Foundation, where it was formerly part of the Jakarta Project.
eric is a free integrated development environment (IDE) used for computer programming. Since it is a full featured IDE, it provides by default all necessary tools needed for the writing of code and for the professional management of a software project.
Software remastering is software development that recreates system software and applications while incorporating customizations, with the intent that it is copied and run elsewhere for "off-label" usage. The term comes from remastering in media production, where it is similarly distinguished from mere copying.
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 or version control, or repository managers. Package managers allow automatically installing and updating repositories, sometimes called "packages".
The Wing Python IDE is a family of integrated development environments (IDEs) from Wingware created specifically for the Python programming language with support for editing, testing, debugging, inspecting/browsing, and error-checking Python code.
The Python Package Index, abbreviated as PyPI and also known as the Cheese Shop, is the official third-party software repository for Python. It is analogous to the CPAN repository for Perl and to the CRAN repository for R. PyPI is run by the Python Software Foundation, a charity. Some package managers, including pip, use PyPI as the default source for packages and their dependencies.
SMPlayer is a cross-platform graphical front-end for MPlayer and mpv and forks of Mplayer using GUI widgets offered by Qt. SMPlayer is free and open-source software subject to the terms of the GNU General Public License version 2 or later. SMplayer has been localized in more than 30 languages.
OCRFeeder is an optical character recognition suite for GNOME, which also supports virtually any command-line OCR engine, such as CuneiForm, GOCR, Ocrad and Tesseract. It converts paper documents to digital document files and can serve to make them accessible to visually impaired users.
Spyder is an open-source cross-platform integrated development environment (IDE) for scientific programming in the Python language. Spyder integrates with a number of prominent packages in the scientific Python stack, including NumPy, SciPy, Matplotlib, pandas, IPython, SymPy and Cython, as well as other open-source software. It is released under the MIT license.
LuaRocks is a package manager for the Lua programming language that provides a standard format for distributing Lua modules, a tool designed to easily manage the installation of rocks, and a server for distributing them. While not included with the Lua distribution, it has been called the "de facto package manager for community-contributed Lua modules".
Anaconda is a distribution of the Python and R programming languages for scientific computing, that aims to simplify package management and deployment. The distribution includes data-science packages suitable for Windows, Linux, and macOS. It is developed and maintained by Anaconda, Inc., which was founded by Peter Wang and Travis Oliphant in 2012. As an Anaconda, Inc. product, it is also known as Anaconda Distribution or Anaconda Individual Edition, while other products from the company are Anaconda Team Edition and Anaconda Enterprise Edition, neither of which is free.
Conda is an open-source, cross-platform, language-agnostic package manager and environment management system. It was originally developed to solve package management challenges faced by Python data scientists, and today is a popular package manager for Python and R. At first, Anaconda Python distribution was developed by Anaconda Inc.; later, it was spun out as a separate package, released under the BSD license. The Conda package and environment manager is included in all versions of Anaconda, Miniconda, and Anaconda Repository. Conda is a NumFOCUS affiliated project.
Meson is a software tool for automating the building (compiling) of software. Meson adopts a convention over configuration approach, promoting standard development tools and practice instead of providing unlimited flexibility to the user. Meson is free and open-source software written in Python, under the Apache License 2.0.
qutebrowser is a QtWebEngine web browser for Linux, Windows, and macOS operating systems with Vim-style key bindings and a minimal GUI. It is keyboard-driven and is inspired by similar software such as Vimperator and dwb. It uses DuckDuckGo as the default search engine. qutebrowser is included in the native repositories of Linux distributions such as Fedora and Arch Linux. qutebrowser is developed by Florian Bruhin, for which he received a CH Open Source award in 2016.