Anacondaにconda-forgeとbiocondaを追加する方法
こんにちは、個人事業OguLinks代表の小倉(@jun_ogulinks)です。
普段、Pythonを使ってデータ処理をすることが多いのですが、新しく環境を整えようとしたり、人に頼まれてその人のPCに環境を構築しようとするときにいつも忘れてしまうことがあります。
そう、conda-forgeとbiocondaの追加方法です。
ただ単純に追加しただけだとリポジトリの優先順位が意図しない順番になっていてパッケージのインストール時に「あれ?」ってなることがあるので、手順や操作方法をまとめておきたいと思います。
また、これからAnacondaをインストールしてPythonの環境を整えようとしている初心者の方にも役に立つ情報かと思われますので、そういった方にもわかるように最初から順を追って説明していきます。
Anacondaのインストールと起動方法
Pythonを使う上で一から環境を構築するのは大変です。
また、初心者にはコマンドから仮想環境構築・管理やパッケージのインストールは少々ハードルが高いです。
そういった初心者が躓きやすい問題を色々と解決してくれるのがAnacondaになります。
Anacondaを使えばデータサイエンスで使用する基本的なパッケージが全て揃った状態でPythonを使い始めることができます。
実際には作製した仮想環境上に必要なパッケージをインストールして使う訳ですが、パッケージのインストールもAnacondaであればマウス操作で簡単にできます。
まずは上記のAnacondaのWebサイトからファイルをダウンロードしてインストールしましょう。
‘Just Me (recommende)’と’All Users (requires admin privileges)’はどちらでも構いません。
分からなければ推奨と書かれているJust Meで良いでしょう。
その次の画面でエラーが出る用であればAll Usersでも問題ありません。
以上でAnacondaのインストールは完了です。
次にAnacondaを起動させてみましょう。
Anaconda Navigatorを起動させたら、仮想環境一覧を表示するためにEnvaironmentsをクリックします。
初めてAnacondaをインストールした方は仮想環境がBase(root)のみです。
私はいくつか環境を作製しているため図のようにごちゃごちゃ表示されています。
Pythonで何か作業をしたい場合、Base (root)を使ってもらっても構わないのですが、原則としてこれには手を付けない方が良いです。
Pythonでは仮想環境上に様々なパッケージをインストールして使います。
しかし、時としてパッケージ同士でバージョンの相性が悪く(依存関係に問題が生じ)、使いたいバージョンのパッケージが使えなかったり、うまくインストールされなかったりすることがあります。
また、新しい仮想環境を作製するときはbase (root)をもとにして作製されます。
そのため、base (root)は常にクリーンな状態にしておきたいと思うわけです。
もちろんバックアップ的な意味合いもあり、base (root)に問題が生じていれば新しく作製した仮想環境にも影響が出ます。
何か新しい作業をする際はプロジェクトごとであるとか、検証用であるなど、何かしらの単位で仮想環境を作製し、作業を行うというようにするのがよいかと思います。
conda-forgeリポジトリの追加
conda-forgeはデフォルトのリポジトリには登録されていない様々なパッケージをコレクションしたものになります。
自分が使いたいパッケージがデフォルトのリポジトリに登録されておらず、conda-forgeにしか登録されていないのであれば、Anacondaでconda-forgeを使えるように設定しなければなりません。
Anaconda Navigatorを起動し、Environments画面を開くとchannelsというボタンがあります。
これをクリックすると現在利用可能なリポジトリが表示されます(リポジトリ=チャンネル、というイメージで利用上は問題ないと思います)。
初めてAnacondaをインストールした方はこのchannelsボタンをクリックしてもデフォルトというものしか表示されていません。
ここにconda-forgeを追加するためにはコマンド操作が必要になります。
コマンドでの操作方法はconda-forgeのサイトに記載がありますが、まずはbase (root)の右側に表示される三角ボタンをクリックしてターミナルを起動します。
ターミナルが起動したら以下のコマンドを実行してconda-forgeをインストールします。
conda config --add channels conda-forge
するとAnaconda Navigatorウィンドウの下側に表示されている利用可能なパッケージ数の数が増えているはずなので確認しておきましょう。
これでconda-forgeの追加操作は終了です。
biocondaリポジトリの追加
biocondaを導入することで生物医学研究に関連する数千のソフトウェアパッケージを利用することができます。
ただし、64ビットのLinuxとmacOSのみサポートしていますのでご注意を(Windowsへの追加自体はできます)。
Anacondaに追加するにはconda-forgeと同様に以下のコマンドでできます。
conda config --add channels bioconda
また、以下の注意書きがあります。
The defaults
channel is the one set by default in a new installation of conda. It should be set to the lowest priority.
The conda-forge
channel (see docs) enables installation of general-purpose packages. Since bioconda
heavily depends on the conda-forge
channel, it is set to highest priority.
つまり、
- デフォルトのチャンネル(リポジトリ)の優先順位は一番低くしなければならない。
- bioconda は conda-forge に大きく依存しているため、最優先に設定しなければならない。
ということになります。
というわけで、次はリポジトリの優先順位の変更の仕方について説明します。
リポジトリの優先順位の変え方
以下のコマンドで現在の順位を調べることができます。
conda config --get channels
このとき、biocondaのWebサイトの指示通りの順番であれば、以下のように出力されていればOKです。
--add channels 'defaults' # lowest priority
--add channels 'conda-forge'
--add channels 'bioconda' # highest priority
もしこの順番になっていない、もしくは意図しないリポジトリからのパッケージのインストールを避けたいなどの理由で順番を変えたいときは変更しなければなりません。
優先順位を低くするためには以下のコマンドを使います。
conda config --append channels リポジトリ名
優先順位を高くするためには以下のコマンドを使います。
conda config --add channels リポジトリ名
# または
conda config --prepend channels リポジトリ名
あとは前述した順位を調べるコマンドで順位を確認しながら目的の順番に並べ替えてください。
最後にこのコマンドを実行します。
conda config --set channel_priority strict
これはインストール時に不可解なエラーを発生させないようにするためのものだそうです。
パッケージ間の依存関係を解決する際に、上で設定したチャンネルの優先順位守られるようにします。
ここまで出来たら念のためcondaをアップデートしておきましょう。
conda update --all
これでPythonを使うための最低限の準備が完了です。
まとめ
Anacondaのインストールとconda-forgeおよびbiocondaの導入の仕方について解説をしてきました。
Anacondaはnumpyやscipy、pandas、matplotlibなどよく使うパッケージがすでに入っている便利なソフトですが、研究レベルで使うには標準パッケージだけでは足りません。
研究レベルでPythonを利用したいのであれば、conda-forgeやbiocondaのような外部のリポジトリ導入は避けて通れないのではないでしょうか。
導入にはコマンド操作が必須となるのでプログラミング完全初心者には少しばかりハードルが高いように感じるかもしれませんが、指示通りに操作していけばできるはずですので頑張って挑戦していきましょう。
Pythonのプログラム・GUIアプリケーションを作って仕事の効率化をお手伝いします!
科研費等での支払いにも対応しており、国立・私立大学の先生から複数の受注実績があります。
対応可能かどうかも含めてお気軽に問い合わせページからご相談ください。
OguLInks公式サイトのトップページに簡単な事例紹介もありますのでご参照ください。
Twitterでお得情報をゲットしたい方はフォローいただけると幸いです。
(投稿一覧はこちらからどうぞ)