Ubuntuにanacondaをインストールして利用するときに気に留めておく重要ポイント

インストール時に聞かれるconda initって何?

Do you wish the installer to initialize Anaconda3 by running conda init?

yesにすると、

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/user/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/user/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/user/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/user/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<

が.bashrcに勝手に追加される。

これは毎回conda initを実行するのと同じことですが、.bashrc に書かれることで、ターミナルを立ち上げるたびに、自分でconda initをしなくても良くなります。いい感じに自分が使っているシェル(bashとかtcshとかzshとか)に対してanacondaを適合してくれます。

conda の機能の主要な部分は、conda が起動されているシェルと直接対話することを必要とします。conda activate と conda deactivateコマンドは、特にシェルレベルのコマンドです。つまり、対話するシェルの状態 (環境変数など) に影響を与えるものです。他のコアコマンド、例えば `conda create` や `conda install` も必然的にシェル環境と相互作用します。そのため、これらは各シェルに特有の方法で実装されています。それぞれのシェルを使用することができます。

conda installで見つからないパッケージはpipでインストールするのではなく、まず、conda-forgeから探し、それでもなければpipでインストールする

pipは誰でもパッケージを作れば、公開できるので、玉石混交です。もっというと、害のあるパッケージがあるかもしれません。conda installで見つかるパッケージはanacondaの運営会社が一応チェックした上で管理しています。

当然、conda本家のリポジトリにはないパッケージは無数にあります。

そういったパッケージを入れたい場合(科学系のパッケージはマイナーなので本家にはないことが多いですね)は、conda-forgeからインストールします。

conda-forgeは、github上で組織されているコミュニティ主体のパッケージコレクションで、 conda-forgeで管理されているパッケージは13000を超えています。

anacondaを使う場合は、まずはconda本家を探す。それでなければ、conda-forgeを探す。例えばstarfileというパッケージはconda本家には存在しないが、conda-forgeを探せばある。

conda install starfile -c conda-forge

それでも無ければpipでインストールすることになりますが、pipとanacondaはお互い何を管理しているから知らないので、その状況ではバッテイングしてしまうことがあります。

pip install -e . みたいなことがしたい場合

conda develop .

uninstallしたい場合は、

conda develop -u .

 

コメント