pip vs easy_install

easy_install was released in 2004, as part of setuptools. It was notable at the time for installing packages from PyPI using requirement specifiers, and automatically installing dependencies.

pip came later in 2008, as alternative to easy_install, although still largely built on top of setuptools components. It was notable at the time for not installing packages as Eggs or from Eggs (but rather simply as ‘flat’ packages from sdists), and introducing the idea of 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 Wheels

Yes

No

Uninstall Packages

Yes (pip uninstall)

No

Dependency Overrides

Yes (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 Eggs

No

Yes

pylauncher support

No

Yes 1

Multi-version installs

No

Yes

Exclude scripts during install

No

Yes

per project index

Only in virtualenv

Yes, via setup.cfg


1

https://setuptools.readthedocs.io/en/latest/easy_install.html#natural-script-launcher