pip対easy_install#

:ref:`easy_install <easy_install>`は、現在では`非推奨`とされていますが、2004年に:ref:`setuptools`の一部として公開されました。requirementsファイルを利用して自動的に依存関係にあるパッケージも併せて:term:`PyPI <Python Package Index (PyPI)>`から:term:`packages <Distribution Package>`をインストールすることができるというのは当時としては画期的でした。

依然として:ref:`setuptools`を部品に使ってビルドされてはいますが、:ref:`easy_install <easy_install>`を置き換えるものとして:ref:`pip`が2008年に後からやってきました。当時はパッケージを(かなり単純に:term:`sdists <Source Distribution (or "sdist")>`から「フラット」なパッケージとしてインストールするものであって):term:`Eggs <Egg>`の形でインストールするものでも、:term:`Eggs <Egg>`からインストールするものでも*なかった*こと、そして、簡単に環境を再現する力をユーザに与える:ref:`Requirements Files <pip:Requirements Files>`の考え方を導入したことは注目に値します。

pipと非推奨となったeasy_installの重要な違いをおさらいしておきましょう:

pip

easy_install

:term:`Wheels <Wheel>`からのインストール

はい

いいえ

パッケージのアンインストール

はい (python -m pip uninstall)

いいえ

依存関係を上書きする

はい (Requirementsファイル

いいえ

インストールされたパッケージのリスト

はい (python -m pip list and python -m pip freeze)

いいえ

PEP 438 サポート

はい

いいえ

インストールフォーマット

:file:`egg-info`のメタデータを伴った「フラット」なパッケージ。

カプセル化されたEggフォーマット

sys.pathの変更

いいえ

はい

:term:`Eggs <Egg>`からのインストール

いいえ

はい

pylauncherサポート

いいえ

はい [1]

複数バージョンのインストール

いいえ

はい

インストール中にスクリプトを除外する

いいえ

はい

プロジェクトごとの索引

virtualenvの中のみ

はい、setup.cfgを通じて