condaとpipの違い

普段,Pythonのパッケージ管理はconda (Anaconda) で行っているのですが,conda経由では目的のパッケージが見つからなくて,pipではインストールできるという状況に出くわしました.

その昔,様々な方法でパッケージ管理をしていたらスパゲティな環境になってしまい全貌の把握が不可能になってしまったことの教訓もあり,いまのパッケージ管理はAnacondaで一元化しておきたい気持ちがあります.

Conda環境にPipを混ぜてもいいのでしょうか?

そもそも「condaとpipの違いって何やねん」という話です.少しググってみるとAnacondaから公式見解が発表されていました.

『Understanding Conda and Pip(意訳:CondaとPipを理解してみれば?)』という正しくなタイトルです.

Anaconda | Understanding Conda and Pip
Conda and pip are often considered as being nearly identical. Although some of the functionality of these two tools over...

 

色々と細かい違いはあるようですが(細かい違いが知りたい人は上記リンク先を参照してください),CondaとPipが必ずしも排他的ではないことが示されています.

特に最終段落に着目してみますと,

“Given the similarities between conda and pip, it is not surprising that some try to combine these tools to create data science environments. A major reason for combining pip with conda is when one or more packages are only available to install via pip.”(意訳:condapipでいろいろ似てるとこがあるけど,データサイエンスの開発環境を作るときに併用することは実際あるよね.その主な理由はpipでしかインストールできないパッケージがあるからなんだけど(てへぺろ).)

といった感じで,悪びれもせずに言っていますが,condaではインストールできなくてpipではできるパッケージが結構あるようです.総数にしてCondaが約1500パッケージ超に対して,Pipは約150000パッケージ超ということで,オーダーが二つくらい違います(驚き).なるべく早く改善してほしいところです.

上記の記事が作成されたのが2018年11月28日なので,2019年10月27日現在では状況が変わっている可能性があります.ご注意ください.

結論としては,Anacondaの公式見解によると「CondaとPipは併用してもいい(というかそうする他なし)」ということでした.

俄然Pipベースで環境構築しなおしたくなってきましたが,それはそれで面倒なのでcondaでインストールできないパッケージだけpipでインストールして使おうと思います.

以上,Anacondaの頑張りに期待しつつこの記事を終わります.

Anaconda,がんばれー!

コメント

タイトルとURLをコピーしました