はじめに
pythonを動かしている分析兼開発環境を、サーバー間で引っ越しした。そのときの手順をまとめた。
引越し元
環境
今回は以下のような環境からの引っ越しを目論んだ。
OS:CentOS 7.4
シェル:bash
python環境:pyenv + miniconda + python3.6
作業
conda環境の保存
conda create py36
のようにして作っていた環境を以下のようにエクスポートする。
conda env export -n py36 > py36.yml
scpするための準備
上で作成したymlファイルを引越し先にscpするための準備として、例えば以下のようなconfigファイルを~/.ssh
に作成する。
IdentityFile ~/.ssh/<鍵のファイル名>
AddKeysToAgent yes
Host <引っ越し先のホスト名>
Hostname <引っ越し先のIPアドレス>
User <引越し先での自分のユーザ名>
ymlファイルを引越し先に送る
先ほと作成したymlファイルを、引越し先のホームディレクトリにscpで送る。
scp py36.yml <user_name>@<host_name>:/home/<user_name>/
引越し先
環境
今回の引越し先は引越し元と同じサーバー環境であった。ここに引越し元と同じ環境を作ろうとしている。
OS:CentOS 7.4
シェル:bash
作業
pyenvのインストール
ホームディレクトリで以下を実行してpyenvをインストール
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
続いて以下のようにbash_prifileを設定する
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
最後に .bash_proifleをsourceしておく。
source .bash_profile
condaのインストール
ここでは引越し元に合わせて Miniconda をインストールしておく。
# install
pyenv install miniconda3-4.3.30
pyenv rehash
# check
pyenv versions
# switch global environment
pyenv global miniconda3-4.3.30
condaで仮想環境を復元
通常は conda create hoge
のようにして環境を作成するが、ここでは引越し元から持ってきたymlファイルを使って作成する。
conda env create -f=py36.yml
conda activate <環境名>
のようにしてactivateできるようにするため以下のように.bashrcを編集する。これを設定する前に conda activate <環境名>
として実行すれば以下のようなコマンドを含むエラーメッセージが出力されるので、そこからコピペして実行すればよい。
echo ". /Users/<user_name>/.pyenv/versions/miniconda3-4.3.30/etc/profile.d/conda.sh" >> ~/.bashrc
source .bashrc
最後に、引越し元と同様に仮想環境 py36 をactivateできることを確認しよう。
conda activate py36