いろいろ備忘録日記

主に .NET とか Java とか Python絡みのメモを公開しています。

Pythonメモ-73 (condaのチャネルの優先度を操作) (prepend, channels, lowest channel, highest channel)

概要

忘れないうちにメモメモ。

condaを使っていて、チャネルを追加した際に lowest channelhighest channelにどれを持ってくるかというやり方。

やり方

condaにおけるチャネルリストの考え方

Managing channels — Conda documentation

を見ると、3つの指定方法があります。

  • conda config --add channels xxxxx
  • conda config --prepend channels xxxxx
  • conda config --append channels xxxxx

--add はチャネルリストの先頭に追加します

--prependは、--addと同じで先頭に追加します

--appendは、チャンネルリストの末尾に追加します

conda は、チャネルリストの先頭にあるものを優先度高チャネルとします。

なので、末尾にあるチャネルが優先度低チャネルとなります。

パッケージをインストールする際、優先度が高いチャネルから検索されるので

順序を間違っていると、望んでいないチャネルのパッケージが入る可能性があります。

基本、conda使っている人は大体 conda-forge もリストに入れていると思います。

(ちなみに、パッケージ数は、defaults チャネルより conda-forge の方が断然多いです)

以下の記事を見ると、今後はconda-forgeがメインストリームになるのかなって感じ。

Pythonのディストリビューション「Anaconda」、バージョン5.0が登場 - CIOニュース:CIO Magazine

conda-forge を 低優先度に

$ conda config --append channels conda-forge

既に一度conda-forgeを追加している場合でも、このコマンドで優先度が変わります。

conda-forge を 高優先度に

$ conda config --add channels conda-forge

もしくは

$ conda config --prepend channels conda-forge

既に一度conda-forgeを追加している場合でも、このコマンドで優先度が変わります。

現在のチャネルリストの確認

$ conda config --get channels

試してみた

$ conda config --get channels
--add channels 'conda-forge'   # lowest priority
--add channels 'defaults'   # highest priority

$ conda config --prepend channels conda-forge
Warning: 'conda-forge' already in 'channels' list, moving to the top

$ conda config --get channels
--add channels 'defaults'   # lowest priority
--add channels 'conda-forge'   # highest priority

$ conda config --append channels conda-forge
Warning: 'conda-forge' already in 'channels' list, moving to the bottom

$ conda config --get channels
--add channels 'conda-forge'   # lowest priority
--add channels 'defaults'   # highest priority

参考情報

Managing channels — Conda documentation

condaのマニュアルページです。

medium.freecodecamp.org

condaについて詳しく書かれている記事。とてもわかり易いです。

devlights.hatenablog.com

conda-forgeチャネルについて書いたときの記事です。


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。