condaを使うべきか、pipを使うべきか

この記事は約4分で読めます。

こんにちは、おしんです

 

私は普段PythonをAnaconda上で使用し、その中の仮想環境で開発を行っています

 

ただ、このように仮想環境で開発している時って…

 

パッケージをインストールするときに

pip install パッケージ名

を使うか

conda install パッケージ名

のどっちを使えばよいか迷うときがありますよね

 

 

おしん
おしん

参考にしているサイトがそれぞれ別々のインストール方法をしてて訳が分からんんんん

 

と思ったことがある方は少なくないはず…

(私は最初はこれのせいで混乱してました)

 

 

そこで今回はpipとcondaの違いについて自分なりにまとめてみました

 

かなりざっくりとした説明になりますが、分からない方の参考になれば嬉しいです

 

以下の話はAnacondaがインストール済みで、且つ仮想環境を構築済みであることを前提で話します

 

 

 

結論

まず初めに結論から述べますと、pipとcondaの併用は極力避けてください

 

絶対にするなというわけではありませんが基本的にはどちらかに統一するのがベターです

 

 

何故かと言うと、場合によってはPython環境がぶっ壊れて謎のエラー地獄に陥ることがあるからです

 

これはpipとcondaではパッケージの管理方法の違いによって発生します

 

詳しくは以下で説明していきますね

 

 

pipとcondaの違い

上記でも軽く説明しましたが、pipとcondaではパッケージの管理方法と適用範囲が違います

 

 

まず適用範囲についてですが…

 

pipはAnaconda上の仮想環境ごとにパッケージ管理するのに対して、condaはanaconda自体で管理します

 

そのため、pipで入れたパッケージはその仮想環境のみに適用されますが、condaで入れたパッケージは仮想環境全体に自然と適用されます

 

 

そしてこのシステムの厄介なところがpipとcondaで同じパッケージを入れても別物扱いになってしまうということなんです

 

 

そのため違うバージョンの同じパッケージが共存してしまい、その結果依存関係がぐちゃぐちゃになって環境がぶっ壊れることがあるみたいです

 

 

pipとcondaはどっちを使う方が良いの?

正直どちらかに統一してあれば、どっちを使っても良いと思います

 

しかし、より汎用性や将来性が高い方を考えるならpyenv-virtualenvでanaconda自体を複数管理してcondaメインでパッケージを管理する方が良いですね

 

完全に主観ですが、最近は恐らくこっちの方が主流になっている気がします

 

と言うよりもcondaが割と便利なんですよね

 

Pythonの機械学習エンジニアを苦しめているCUDA周りの設定もcondaを使った方が楽みたいです

 

おしん
おしん

私はcondaを使わなかったのでかなり苦労しました…

 

基本はcondaでパッケージを管理し、どうしてもpipで入れたいパッケージがあれば新たに仮想環境を作り、そこでpipを入れて試してみるのが一番安全です

 

 

おしん
おしん

ちょっとめんどくさいけど安全を考えるならこっちのほうがベターです!

 

 

まとめ

今回はPythonのパッケージ管理方法のpipとcondaの違いについて説明しました

 

結論をまとめると

  • pipとcondaは極力併用しない
  • どっちを使っても問題ないけど、最近はcondaの使い勝手が良くなっている
  • pipメインで使うなら仮想環境上だけで使う
  • condaメインで使うならpyenv-virtualenvを使ってAnacondaを管理する

 

ちなみに私はpipメインで使ってますが、正直condaメインに移行したいです笑

 

おしん
おしん

ただ、そろそろ修論の時期なので下手なことをしたくないので現状はステイです…

 

以上になります

 

pipとcondaの使い分けで悩んでいる人の参考になれば嬉しいです

 

ご閲覧ありがとうございました

 

コメント

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