Anaconda開発環境構築
Anaconda入れればいいだけじゃん、という感じだが、そうするとプロジェクトごとに異なるAnacondaのバージョンを使いたい、とかいう時に困るので、pyenvを使って環境を分ける方法について述べる。
(例えばAnaconda4が出たりした時に、旧プロジェクトは3のままがいい、とかあるので)
すでにいれちゃったAnacondaの削除
.bashrcから記載を削除
.bashrc(macだと.bash_profile)にAnacondaが勝手に書き込んだ以下を削除。
# added by Anaconda3 5.3.1 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/anaconda3/etc/profile.d/conda.sh" ]; then
. "/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
anaconda-clean
anacondaはanaconda-cleanというコマンドを用意してくれているのでそれを叩く。
$ anaconda-clean
$ rm -rf ~/.anaconda_backup
anaconda-cleanが見つからなかったらinstallする。
conda install $ anaconda-clean
~/.anaconda_backupはバックアップなので消す。
念の為、/anaconda3も消す。
$ rm -rf /anaconda3
で完全に消えた。
Pyenvインストール
各Anacondaを分けるためにpyenvを用いる。
のでインストールして環境変数を設定しておく。
しておかないと動かないので注意。
Macは超簡単。
brew install pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
が、Ubuntuとかの場合はaptでインストールできないので、git cloneして以下のように。
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
という感じで。
Anacondaインストール
Anacondaをインストールといっても直接はインストールしない。
pyenvのAnacondaを使う。
$ pyenv install -l | grep anaconda3
anaconda3-2.0.0
anaconda3-2.0.1
anaconda3-2.1.0
(略)
anaconda3-2020.11
anaconda3-2021.05
anaconda3-2021.11
と、pyenvで使えるAnacondaのリストが出てくる。
ので、まずはインストールする。
ここでは、anaconda3-5.3.1を入れることにする。
pyenv install anaconda3-5.3.1
そして、pyenvでanaconda3-5.3.1を有効にする。
pyenv global anaconda3-5.3.1
このまま使うと環境が汚染されてダメなので、プロジェクトごとに使い分けるようにする。
例えばプロジェクトA用の環境を作る場合、
$ mkdie project_a
$ cd project_a
$ conda create -n env_project_a python=3.8
この状態で、pyenv のバージョンを確認すると、
$ pyenv versions
system
* anaconda3-5.3.1
anaconda3-5.3.1/envs/env_project_a
anaconda3-5.3.1/envs/env_project_a というのができてるのでそれにスイッチする。
pyenv local anaconda3-5.3.1/envs/env_project_a
これで、このディレクトリ配下のanacondaは他のディレクトリ上での作業で汚染されることはない。
ここまでやっておいたら、globalな方の設定を念のため戻しておこう。
$ pyenv global system
んで、anacondaを使うにはこのディレクトリ配下で、
source ${HOME}/.pyenv/versions/anaconda3-5.3.1/bin/activate env_project_a
とする。そうしないとcondaはつかえない。
終了は、
conda deactivete
以上!