Anacondaを使っている場合でも、Pythonの標準パッケージ管理ツールである pip を使う場合があります。ここでは、Anaconda環境で pip を使う場合の注意点を説明します。
Pip とPyPI¶
PyPI(Python Package Index) は、Pythonの開発元である Python Software Foundation が運営する、Pythonパッケージの配布サービスです。PyPIには、だれでも自分で開発したパッケージを登録して公開できます。
Githubなどで公開されるPython用のパッケージのほとんどはPyPIに登録されており、Pythonに標準でインストールされる pip コマンドでインストールできるようになっています。
CondaとAnaconda cloud¶
一方、Anacondaはパッケージを Anaconda Cloud の独自のリポジトリで公開し、pip コマンドではなく conda コマンドでインストールします。
PyPIはPython専用のサービスですが、Anacondaはもっと汎用的な科学技術計算のためのサービスですので、Pythonと無関係なソフトウェアもインストールできるようになっています。また、同じソフトウェアがPyPIとAnacondaの両方に登録されている場合でも、 Anaconda版ではより科学技術計算用に最適化されている場合もあります。
pip と conda はどちらもパッケージをインストールするコマンドですが、パッケージの取得元も、インストールする方法も異なっています。また、PyPIとAnaconda cloudの両方で公開されているパッケージでは、もともとのソースコードは同じでも、パッケージの作り方や管理方法は全く別になっています。
CondaとPIP、どちらを使えばいいの?¶
基本的には、Anacondaの環境を利用する場合には conda を使い、Anacondaを使わない場合には pip を使います。(conda は、Anaconda以外の環境では使えません。)
しかし、Webでよく見かけるPythonの解説ページや書籍などでは、パッケージの使い方の説明として
$ pip3 install XXXX
のように、pip を使ったインストール方法を紹介している場合がほとんどです。
これは conda を使うより pip を使ったほうが良いからではなく、一般的なPythonプログラミングでは、Anacondaはあまり使われていないからです。たとえば、科学技術計算と関係ないWebサービスなどを開発する場合に、Web系プログラマがAnacondaを使うことはほとんどありません。
ですから、Anaconda環境では、pip ではなく、conda コマンドを使うようにしてください。
pip3 install ~ を実行する前に、conda search コマンドなどで必要なパッケージを検索して、conda install コマンドでインストールできないか、試してみましょう。
Anaconda環境のpip¶
Anacondaの実行環境でも、 pip でPyPIのパッケージをインストールすることはできます。しかし、pip と conda の違いのために、依存関係の管理に不具合が発生してしまう場合があります。特に、Anaconda cloudとPyPIの両方で公開されているパッケージを pip を使ってインストールした場合などに、問題になるケースがあります。
conda も pip も、インストールするパッケージの依存関係を管理しています。たとえば、Googleの有名な機械学習ライブラリ TensorFlow は、Pythonの数値演算パッケージである NumPy を利用しています。conda を使って TensorFlowをインストールすると、Anacoda環境に Numpyがインストールされていなければ、自動的にAnaconda Cloudから Numpy をダウンロードしてインストールしてくれます。同様に、pip を使って TensorFlow をインストールすると、必要に応じてPyPIからNumPyをダウンロードしてインストールします。
しかし、conda と pip はそれぞれ独立してパッケージのインストール環境を管理しています。conda がインストールしたパッケージは pip では把握していませんし、 conda でインストールしたパッケージの情報は pip では把握していません。このため、Anaconda環境で pip を使ってパッケージをインストールすると、パッケージの依存関係の管理に不具合が発生してしまう場合があります。
pipを使う場合¶
Anaconda cloudで公開されているパッケージは、PyPIにあるパッケージのごく一部です。必要なパッケージがAnacond cloudになければ、pipを使ってPyPIからインストールしなければなりません。しかし、pip でインストールする前に、かならず conda search コマンドなどを使って、Anaconda で公開されていないか確認してから、PyPI版を使うようにしましょう。
pip の利用で問題が発生する場合、科学技術計算以外の用途で利用しているのであれば、そのときだけAnancondaではなく、通常のPythonに切り替えてPyPIを併用するのも一案です。
Anacondaと一般のPythonの使い分けについては、PythonとAnaconda も参照してください。