| Page Status: | Complete |
|---|---|
| Last Reviewed: | 2015-09-08 |
easy_install was released in 2004, as part of :ref:`setuptools`. It was notable at the time for installing :term:`packages <Distribution Package>` from :term:`PyPI <Python Package Index (PyPI)>` using requirement specifiers, and automatically installing dependencies.
:ref:`pip` came later in 2008, as alternative to easy_install, although still largely built on top of :ref:`setuptools` components. It was notable at the time for not installing packages as :term:`Eggs <Egg>` or from :term:`Eggs <Egg>` (but rather simply as 'flat' packages from :term:`sdists <Source Distribution (or "sdist")>`), and introducing the idea of :ref:`Requirements Files <pip:Requirements Files>`, which gave users the power to easily replicate environments.
Here's a breakdown of the important differences between pip and easy_install now:
| pip | easy_install | |
| Installs from :term:`Wheels <Wheel>` | Yes | No |
| Uninstall Packages | Yes (pip uninstall) |
No |
| Dependency Overrides | Yes (:ref:`Requirements Files <pip:Requirements Files>`) | No |
| List Installed Packages | Yes (pip list and pip
freeze) |
No |
| PEP 438 Support | Yes | No |
| Installation format | 'Flat' packages with egg-info metadata. | Encapsulated Egg format |
| sys.path modification | No | Yes |
| Installs from :term:`Eggs <Egg>` | No | Yes |
| pylauncher support | No | Yes [1] |
| :ref:`Multi-version Installs` | No | Yes |
| Exclude scripts during install | No | Yes |
| [1] | https://setuptools.readthedocs.io/en/latest/easy_install.html#natural-script-launcher |