pip installとconda installの比較

pip installとconda installの比較

Anaconda環境で作業する場合、pip installとconda installの違いを理解していないと競合が起こり環境が壊れてしまう場合があります。

この記事では、競合が原因で環境が壊れてしまうことがないようpip installとconda installの違いについて調べたものを、備忘録として共有しようと思います。

Contents

pipとは

Python開発元であるPython SoftWare Foundationが提供するPythonパッケージの配布サービスにPyPi (Python Package index) というものがあります。pipとは、このPyPiを利用する際の標準パッケージ管理コマンドです。pipを使用することでパッケージのダウンロード・インストールなどを行うことができます。

Pythonを用いたプログラミング(科学技術計算と関係がないもの)ではpipが使用されます。そのため一般書籍ではpipコマンドを使用したパッケージインストールが記載されている場合が大半となっています。

condaとは

科学技術計算などで用いられるAnacondaでは、パッケージはAnaconda Cloud上で提供されます。condaとは、Anaconda Cloudにアクセスし、パッケージのダウンロード・インストールを行うための標準パッケージ管理コマンドです。

Anacondaは、科学技術計算で利用されるサービスとして、Pythonとは関係性のないソフトウェアの提供も行っています。そのためpipコマンドではなく、独自のcondaコマンドが用意されています。

pipとcondaの比較

pipとcondaの違いについてはAnaconda公式の表がわかりやすいと感じたので引用させていただきました。

pipconda
manageswheel or sourcebinaries
can require compilersyesno
package typesPython onlyany
create enviromentno, requires virtualenv or venvyes, built in
dependency checksnoyes
package sourcesPyPiAnaconda repo and cloud
引用:Anaconda | Understanding Conda and Pip

pipとcondaが競合する理由

pipとcondaは共に独立してパッケージの管理を行います。ゆえにpipでインストールしたパッケージをcondaは把握していません。この逆も同様です。

またpipは、パッケージインストールが行われた際、他のパッケージとの依存関係を自動的に良好に保つよう働く機能を持ちません(pipではインストールを行う前にパッケージの依存関係をチェックしておく必要がある)。これにより、pipとcondaではパッケージの依存関係の管理に不具合が生じる場合があるというわけです。

pipとcondaの使い分け方

Anacondaを使用する場合はcondaコマンド、使用しない場合はpipコマンドとするのが一般的です。Anaconda環境下では、conda searchコマンドなどで必要なパッケージを検索してcondaコマンドでインストールができないかどうかを検討することがセオリーとなります。

どうしてもAnaconda環境下でpipコマンドを使いたいという場合には、現在使用している仮想環境のコピー環境を作成し、その環境でpipコマンドを利用したパッケージインストールのテストを行うことをおすすめします。

競合の可能性がある場合

競合が生じていないかを確認するには、使用中のAnaconda環境下でconda listを使う方法があります。パッケージが重複して並んでいるもののうち、一番右にpypiとあればそれがpipにてインストールされたパッケージです。condaでインストールされたものは一番右が空欄になります。

pip installされたものとconda installされたものが存在し、それが原因で競合が生じている場合にはAnaconda自体をアンインストールする必要があります。

  • URLをコピーしました!
Contents