conda-forgeはコミュニティベースのRepositoryで、Anaconda repositoryにはない素晴らしいモジュールが豊富にそろっています。
一方、Anaconda repositoryは、Anaconda inc.に管理されているので、安定性や依存関係の点で信頼性が比較的高いんじゃないかなと個人的には思っています。
そう感じると、できるだけAnaconda repositoryからとってきて、そこにないモジュールだけをconda-forgeから持ってきたいと思いますよね?
この懸念はGitHubのスレッドでも話し合われていて、私もその通りだなと思いました。
この話し合いの内容を見てみるとDefaultチャンネルにあるものは先に準備して、conda-forgeにしかないものは後から追加するという折衷案で落ち着いたようです。
今日はその手順をまとめました!
① Defaultチャンネルで仮想環境を作る
例として、Twythonモジュールを含んだ仮想環境(YutaKa_Tweet_Manager)を構築してみましょう。
conda create --name YutaKaTweetManager twython
次の画面のpkgs/main/win-64やnoarchはデフォルトチャンネルを意味しています。
これで、基本的なモジュールとtwythonに関連するモジュールは、Defaultチャンネルからインストールできました!
② conda-forgeにしかないモジュールを追加する
次に今作った仮想環境をアクティベイトします!
conda activate YutaKa_Tweet_Manager
アクティベイトしないと、base環境(デフォルト環境)にモジュールがインストールされてしまうんです。base環境はいじらないのが基本らしいです。
アクティベイトしたらチャンネルを指定して、モジュールをインストールします。
conda install -c cond-forge PACKAGENAME1 PACKAGENAME2 PACKAGENAME3...
今回は次の3つのモジュールをインストールしてみます。
- google-api-python-client
- google-auth-httplib2
- google-auth-oauthlib
欲しいモジュールとそれと関係するモジュールだけがインストール、バージョン調整されたようです!
つまり、デフォルトチャンネルをもとに作った環境を保護しつつ、必要なものだけconda-forgeからインストールできたということだと思います。
まとめ
今回は、できるだけAnaconda repositoryからモジュールをインストールしつつ、そこにないモジュールだけをconda-forgeから持ってくる方法をまとめました。
初めから必要なモジュールがわかっている場合には、今回紹介した方法がBest effortだと思います。