コンテンツにスキップ

Top

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
これでOK。あとはパスの設定。

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
で良い。

以上!