こんにちは、おしんです
私は普段PythonをAnaconda上で使用し、その中の仮想環境で開発を行っています
ただ、このように仮想環境で開発している時って…
パッケージをインストールするときに
を使うか
のどっちを使えばよいか迷うときがありますよね
参考にしているサイトがそれぞれ別々のインストール方法をしてて訳が分からんんんん
と思ったことがある方は少なくないはず…
(私は最初はこれのせいで混乱してました)
そこで今回はpipとcondaの違いについて自分なりにまとめてみました
かなりざっくりとした説明になりますが、分からない方の参考になれば嬉しいです
結論
まず初めに結論から述べますと、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の使い分けで悩んでいる人の参考になれば嬉しいです
ご閲覧ありがとうございました
コメント
[…] 詳しい原理が知りたい方は、こちらの記事【condaを使うべきか、pipを使うべきか】で詳しく解説してくれているので、参考にしてみてください。 […]