pipとconda
pipとcondaとはなにか?
pipはPython標準のパッケージ管理ツールでPyPIからインストールする。
condaはAnacondaのパッケージ管理ツールでAnaconda社が提供するレポジトリからパッケージをインストールする(だからPyPIにはあるけどAnacondaにはない場合がある)。
pip intallとconda installの違いはなにか?
conda installとpip installではbuildする場所が違う。
- conda installではすでにどこかでbuildされたpackageをfetchするだけ。
- pip installはlocalの実行環境と互換のあるwheel(Python のパッケージング形式。実態はzip形式のアーカイブ。PEP427で定義。)を取得した後、localの実行環境でsetup.pyを実行してbuildしている。
buildするタイミングでlocalの実行環境に合うようライブラリが最適化される。つまり、
- conda installされたライブラリはlocalの実行環境で最適化されているとは言えない。
- pip installされたライブラリはlocalの実行環境で高性能を発揮できるよう最適化されている。
つまりpipのほうが実行時間が短くなる場合がある。
どっち使えばいいの?
どちらでもいい。
ただし、併用は厳禁らしい。
なぜならパッケージの仕組みが全くことなり、condaは複数の仮想環境下でディスクの使用量を節約するため、ハードリンクを駆使している。
これによりcondaパッケージをpipパッケージで上書きした場合に環境まるごと壊れる可能性がでてくる。
onoz000.hatenablog.com
なんでこんなことになったのか?
pipとcondaの経緯はこの記事が詳しい。
ymotongpoo.hatenablog.com