Dive into hoge

データ分析関連の備忘録

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