A ツイート 読み:
あなたが顔に刺さるのが好きでない限り、easy_installを使わないでください。ピップを使用してください。
なぜeasy_installの上にpipを使うのですか? の障害はPyPIとパッケージの作者のほとんどにありますか? ?作者ががらくたソースのtarball(例:見つからないファイル、no setup.py)をPyPIにアップロードした場合、pipとeasy_installの両方は失敗します。見かけ上の違い以外に、なぜPythonの人たち(上のツイートのように)が 強く のように思われるのですか?
(コミュニティによって管理されているDistributeパッケージのeasy_installについて話しているとしましょう)
ここでの回答の多くは2015年の期限が切れています(ただし、 Daniel Rosemanから最初に承認されたもの はそうではありません)。これが現在の状況です。
.whl
ファイル)。 pip
は車輪を扱うことができます。 easy_install
はできません。virtualenv
を使用して2.6 +/3.1 +に追加できる)は非常に重要で目立つツールになりました(そして 公式ドキュメント で推奨されています) _); pip
はそのまま使用できますが、easy_install
では正しく機能しません。easy_install
を含んだdistribute
パッケージは管理されなくなりました。 setuptools
に対する改善はsetuptools
にマージされました。 distribute
をインストールしようとすると、代わりにsetuptools
がインストールされます。easy_install
自体は、準メンテナンスされているだけです。pip
がeasy_install
(展開されたソースツリーからのインストール、DVCSリポジトリからのインストールなど)より劣っていたというすべてのケースは古くなっています。 pip install .
、pip install git+https://
ができます。pip
には、python.orgの公式Python 2.7および3.4+パッケージが付属しています。ソースからビルドする場合は、デフォルトでpip
ブートストラップが含まれています。pip
を「優先インストーラプログラム」として呼び出しています。pip
に追加されましたが、それらはeasy_install
には含まれません。たとえば、pip
を使用すると、要件ファイルを作成してから各サイドで1つのコマンドでインストールすることで、サイトパッケージのクローンを簡単に作成できます。あるいは、自社開発に使用するために要件ファイルをローカルリポジトリに変換することもできます。等々。2015年にeasy_install
を使用することを私が知っている唯一の正当な理由は、OS X 10.5-10.8でAppleのプレインストールされたPythonバージョンを使用するという特別な場合です。 10.5以降、Appleはeasy_install
を含めましたが、10.10の時点ではまだpip
を含みません。 10.9以降では、get-pip.py
を使用する必要がありますが、10.5〜10.8では、これにはいくつか問題があるため、Sudo easy_install pip
の方が簡単です。 (一般的に、easy_install pip
はお勧めできません。これを実行するのは、OS X 10.5-10.8だけです。)また、easy_install
を含む方法でreadline
を含める方法は含まれていますが、pip
は含まれません。アップグレードしたい場合はSudo easy_install readline
も必要です。
Ian Bicking自身の からpipへの紹介 :
pipは、もともと次のようにeasy_installを改良するために書かれました。
- すべてのパッケージはインストール前にダウンロードされます。部分的に完了したインストールは結果として発生しません。
- コンソールに有用な出力を表示するように注意が払われます。
- 行動の理由は追跡されます。たとえば、パッケージがインストールされている場合、pipはそのパッケージがなぜ必要だったのかを追跡します。
- エラーメッセージは役に立ちます。
- コードは比較的簡潔でまとまりがあり、プログラム的に使いやすくなっています。
- パッケージはEggアーカイブとしてインストールする必要はありません。フラットにインストールすることができます(Eggメタデータを維持しながら)。
- 他のバージョン管理システム(Git、Mercurial、Bazaar)のネイティブサポート
- パッケージのアンインストール.
- 一連の固定要件を定義し、一連のパッケージを確実に再現するのは簡単です。
まだ述べられていないが pip を支持するもう1つの理由は、それが新しい暑さであり、今後も使用されることになるからです。
The Hitchhiker's Guide to Packaging v1.0 _の 現在のパッケージ状態 セクションからの下のインフォグラフィックは、setuptools/easy_installが将来なくなることを示しています。
これは 配布物のドキュメント からの別のインフォグラフィックで、 Setuptools とeasy_installが新しいホットさに置き換えられることを示しています - distribute と pip 。 pip はまだ新しい人気ですが、2013年に Distribute は Setuptools とマージされ、 Setuptools v0.7がリリースされました。
2つの理由があります。
pipはuninstall
コマンドを提供します
インストールが途中で失敗した場合、pipはあなたをきれいな状態にします。
要求ファイル。
真剣に、私は毎日virtualenvと組み合わせてこれを使用しています。
クイック依存性管理チュートリアル、フォーク
要件ファイルを使用すると、pipによってインストールされたすべてのパッケージのスナップショットを作成できます。これらのパッケージを仮想環境にカプセル化することで、ご使用のコードベースで特定のパッケージセットを処理し、そのコードベースを他のユーザーと共有することができます。
Herokuのドキュメントから https://devcenter.heroku.com/articles/python
仮想環境を作成し、それを使用するようにシェルを設定します。 (bash/* nix命令)
virtualenv env
source env/bin/activate
このシェルで実行されるすべてのpythonスクリプトはこの環境のパッケージと設定を使用します。これで、あなたのマシンにグローバルにインストールする必要なしに、パッケージをこの環境にローカルにインストールすることができます。
pip install flask
これで、どのパッケージが一緒にインストールされているかについての情報をダンプできます。
pip freeze > requirements.txt
そのファイルをバージョン管理にチェックインした場合、他の誰かがあなたのコードを手に入れたとき、彼らは彼ら自身の仮想環境をセットアップして以下のものですべての依存関係をインストールできます。
pip install -r requirements.txt
いつでもあなたはこのような退屈さを自動化することができます素晴らしいです。
pipはバイナリパッケージをインストールすることはなく、Windows上では十分にテストされていません。
Windowsにはデフォルトでpipというコンパイラが付属していないので、 できない はそこでは使用できません。 easy_install can Windows用のバイナリパッケージをインストールします。
更新:setuptools
は、他の方法とは反対に、distribute
を吸収しました。 setuptools
は最新のdistutils
の変更とホイールのフォーマットに合わせて最新のものになっています。そのため、easy_install
とpip
は、ほぼ同等の立場にあります。
ソース: http://pythonhosted.org/setuptools/merge-faq.html#why-setuptools-and-not-distribute-or-another-name
Fuzzymanの返事に加えて:
pipはバイナリパッケージをインストールすることはなく、Windows上では十分にテストされていません。
Windowsにはデフォルトでコンパイラが付属していないため、pipを使用できないことがよくあります。 easy_installはWindows用のバイナリパッケージをインストールすることができます。
これがWindowsのトリックです。
あなたはバイナリパッケージをインストールするのにeasy_install <package>
を使うことができます。
easy_installを使っていてもpip uninstall <package>
を使うことができます。
これは私にとってWindows上で動作する単なる回避策です。バイナリが含まれていない場合は、実際には常にpipを使用します。
現在のpip dokuを参照してください。 http://www.pip-installer.org/en/latest/other-tools.html#pip-compared-to-easy-install
私はメーリングリストでそのために何を計画しているのか尋ねます。
これが最新のアップデートです。
バイナリをインストールするための新しくサポートされた方法はwheel
です。まだ標準にはなっていませんが、ほとんどです。現在のバージョンはまだアルファです:1.0.0a1
https://pypi.python.org/pypi/wheel
http://wheel.readthedocs.org/ja/latest/
卵の代わりにwheel
を使用してPySide
用のOS Xインストーラを作成してwheel
をテストします。戻ってきて、これについて報告します。
歓声 - クリス
wheel
への移行はほぼ終わりました。ほとんどのパッケージはwheel
をサポートしています。
私はPySide
のために車輪を作ることを約束しました、そして私は去年の夏にそれをしました。よく働く!
ヒント:これまでのところ、distutils
をsetuptools
に置き換えるのを忘れているという理由で、少数の開発者はwheelフォーマットをサポートできませんでした。多くの場合、setup.py
内のこの単一のWordを置き換えることで、このようなパッケージを簡単に変換できます。
pip
の代わりにeasy_install
を使用しなければならない、または直接ソースコードを取得しなければならないという特別な場合を1つだけ満たしてください。
パッケージGitPython
については、pip
のバージョンが古すぎる(0.1.7
)のに対し、easy_install
からのバージョンは最新の0.3.2.rc1
です。
私はPython 2.7.8
を使っています。 easy_install
とpip
のアンダーレイメカニズムについてはよくわかりませんが、少なくともいくつかのパッケージのバージョンは互いに異なる可能性があり、時にはeasy_install
が新しいバージョンのものとなる場合があります。
easy_install GitPython