package management system for Python
Pip_help.png
PyPI
PyPI - Python Version
Documentation
pip install virtualenv
pip (also known by Python 3's alias pip3) is a package manager (package management system) written in Python and is used to install and manage software packages. The Python Software Foundation recommends โ€ฆ Wikipedia
Factsheet
pip
Original author Ian Bicking
Initial release 28 October 2008 (17 years ago) (2008-10-28)
Factsheet
pip
Original author Ian Bicking
Initial release 28 October 2008 (17 years ago) (2008-10-28)
๐ŸŒ
Python Packaging
packaging.python.org โ€บ tutorials โ€บ installing-packages
Installing Packages โ€” Python Packaging User Guide
Managing multiple virtual environments directly can become tedious, so the dependency management tutorial introduces a higher level tool, Pipenv, that automatically manages a separate virtual environment for each project and application that you work on. pip is the recommended installer. Below, weโ€™ll cover the most common usage scenarios. For more detail, see the pip docs, which includes a complete Reference Guide. The most common usage of pip is to install from the Python Package Index using a requirement specifier.
๐ŸŒ
PyPI
pypi.org โ€บ project โ€บ pip
pip ยท PyPI
pip is the package installer for Python.
      ยป pip install pip
    
Published ย  Feb 05, 2026
Version ย  26.0.1
Homepage ย  https://pip.pypa.io/
๐ŸŒ
W3Schools
w3schools.com โ€บ python โ€บ python_pip.asp
Python PIP
PIP is a package manager for Python packages, or modules if you like. Note: If you have Python version 3.4 or later, PIP is included by default. A package contains all the files you need for a module. Modules are Python code libraries you can include in your project. Navigate your command line to the location of Python's script directory, and type the following: ... If you do not have PIP installed, you can download and install it from this page: https://pypi.org/project/pip/
๐ŸŒ
Python
python.org โ€บ downloads โ€บ release โ€บ pymanager-252
Python Release Python install manager 25.2 | Python.org
After installing the install manager, the first launch should run a configuration checker, which can also be manually launched with py install --configure or pymanager install --configure.
๐ŸŒ
Python
python.org โ€บ downloads โ€บ release โ€บ pymanager-260
Python Release Python install manager 26.0 | Python.org
February 23, 2026 - After installing the install manager, the first launch should run a configuration checker, which can also be manually launched with py install --configure or pymanager install --configure.
๐ŸŒ
PyPI
pypi.org
PyPI ยท The Python Package Index
Learn about installing packages. Package authors use PyPI to distribute their software. Learn how to package your Python code for PyPI.
๐ŸŒ
Python
docs.python.org โ€บ 3 โ€บ installing โ€บ index.html
Installing Python modules โ€” Python 3.14.4 documentation
The standard packaging tools are all designed to be used from the command line. The following command will install the latest version of a module and its dependencies from PyPI:
๐ŸŒ
Python Packaging
packaging.python.org โ€บ guides โ€บ tool-recommendations
Tool recommendations โ€” Python Packaging User Guide
See Managing Application Dependencies for more details on using pipenv. When pipenv does not meet your use case, consider other tools like: ... Use pip to install Python packages from PyPI. 1 2 Depending on how pip is installed, you may need to also install wheel to get the benefit of wheel caching.
Find elsewhere
๐ŸŒ
Opensource.com
opensource.com โ€บ article โ€บ 19 โ€บ 4 โ€บ managing-python-packages
Managing Python packages the right way | Opensource.com
This is certainly not always the case when it comes to installing Python packages. However, there are some tools and methods that can be considered best practices. Knowing these can help you pick the right tool for the right situation. pip is the de facto package manager in the Python world.
Top answer
1 of 3
22

Types of Packages
Egg vs Wheel vs Neither. What's meant by neither is that a python package can be installed from its "source" without being packaged as an egg or wheel.

Packaging Utilities
There are several libraries which provide utilities for packaging python applications, including distutils and setuptools. There is already an excellent post on this.

easy_install
Part of setuptools, allows building and installing python packages. Often discouraged in favor of Pip. Designed to make installation of packages easy, doing the chore of downloading and moving them to the correct place for you (hence the name).

Pip
A package manager for python packages, and a replacement for easy_install! See here for some reasons why people prefer it over easy_install. Can do neat things like install a package directly from a git repository or compile C extensions on the target machine. The latter is debatable as to whether or not it's desirable, but nonetheless it's a nice feature to have if you want it.

PyPI
The python package index, where easy_install and Pip search for available packages, by default. Basically a giant online repository of modules that are accepted by the community.

virtualenv
A way of hacking your environment variables to "isolate" an installation of python and it's related modules. Prefers Pip, because Ian Bicking wrote them both. Basically, you use pip to install virtualenv system wide, which then allows you to create python virtual environments, each with their own copy of python, pip, and assorted modules. This lets you have multiple versions of python or install a module just for testing, without mucking up your system-wide python install.

virtualenvwrapper
A really handy shell script that makes creating and tearing down virtual environments easier.

site-packages
One of the supported locations for installing python modules into. Lives someplace like /usr/lib/pythonX.X/site-packages. There are other supported locations, like dist-packages or user specific locations.

What does all this mean for you?
I'd recommend you don't pay any attention to easy_install and just use pip. Please also always use virtualenv. Usually, the only python modules you should install system-wide on your workstation are pip and virtualenv. I've completely ignored eggs and wheels, but if you plan to distribute packages professionally or host them on PyPI, you probably want to investigate those. Also, if you are creating python packages, you will need to learn to write a setup script, with setuptools. My recommendation is to never use distutils.

Some more Reading
A page on python.org about packaging which covers a lot of these topics
Python packaging is a nightmare
A great post that goes against the most common recommendations, including mine!

2 of 3
3

There's some mixing in the options you are listing:

  • virtualenv - is used to create isolated environments
  • site-packages - standard location where python packages / libs reside

  • pypi - is a repository

  • easy_install - is found on the setuptools package

  • pip - was written to improve easy_install.

about python eggs

๐ŸŒ
MLJAR
mljar.com โ€บ glossary โ€บ python-package-manager
What is Python Package Manager?
A Python Package Manager provides several key functionalities: Installation: It allows users to install Python packages from various sources, typically from the Python Package Index (PyPI).
๐ŸŒ
Jumping Rivers
jumpingrivers.com โ€บ blog posts โ€บ python package managers
An Introduction to Python Package Managers
July 22, 2025 - Managing these packages can be a challenging task without the correct tools. Thatโ€™s where Python package managers come in. In this blog post we will explore what a package manager is and why they are important. We will then cover some popular examples, including how to use them, how to install them and the pros and cons of each.
๐ŸŒ
Wikibooks
en.wikibooks.org โ€บ wiki โ€บ Python_Programming โ€บ Package_management
Python Programming/Package management - Wikibooks, open books for an open world
pip is the standard Python package ... since Python 2.7.9 and 3.5.4. If you do not have pip, you can install it by downloading get-pip.py from bootstrap.pypa.io and running python get-pip.py....
๐ŸŒ
Python Packaging
packaging.python.org โ€บ installing
Installing Packages - Python Packaging User Guide
July 5, 2023 - Managing multiple virtual environments directly can become tedious, so the dependency management tutorial introduces a higher level tool, Pipenv, that automatically manages a separate virtual environment for each project and application that you work on. pip is the recommended installer. Below, weโ€™ll cover the most common usage scenarios. For more detail, see the pip docs, which includes a complete Reference Guide. The most common usage of pip is to install from the Python Package Index using a requirement specifier.
๐ŸŒ
The New Stack
thenewstack.io โ€บ home โ€บ how to choose the best python package management tool
How To Choose the Best Python Package Management Tool - The New Stack
June 16, 2025 - Basic operations follow intuitive command patterns: pip install package-name for installation, pip uninstall package-name for removal, and pip list for viewing installed packages.
๐ŸŒ
Python Packaging
packaging.python.org โ€บ tutorials โ€บ managing-dependencies
Managing Application Dependencies โ€” Python Packaging User Guide
The package installation tutorial ... up to install and update Python packages. However, running these commands interactively can get tedious even for your own personal projects, and things get even more difficult when trying to set up development environments automatically for projects with multiple contributors. This tutorial walks you through the use of Pipenv to manage dependencies ...
๐ŸŒ
KDnuggets
kdnuggets.com โ€บ top-7-python-package-managers
Top 7 Python Package Managers - KDnuggets
October 27, 2025 - To install, please enter the following command in your terminal: ... pip is Pythonโ€™s default package manager, included with most Python installations.
๐ŸŒ
Posit
docs.posit.co โ€บ connect โ€บ admin โ€บ python โ€บ package-management
Python Package Management โ€“ Posit Connect Documentation Version 2026.03.0
By default, Posit Connect is responsible for managing the Python environment that is required by the bundle at runtime. Connect manages the environment during content deployment by using venv to create a virtual environment and installing the required packages with pip.