EC2のDeep Learning AMIインスタンスで source activate 仮想環境 できないときの対処法

# はじめに
EC2でDeep Learning AMIインスタンスを作成し、公式ドキュメント通りにpytorch用の仮想環境内で作業しようとしたらエラー吐かれたのでまとめます。

# 公式ドキュメントの記載

[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/dlami/latest/devguide/tutorial-conda.html)にはこのように記載されています。

>サーバーにログインすると、サーバーの「その日のメッセージ (MOTD)」が表示され、さまざまなディープラーニングフレームワークを切り替えるための各種の Conda コマンドが示されます。

>例えば、
`for MXNet(+Keras1) with Python3 (CUDA 10.1) _____________________ source activate mxnet_p36` 
と表示された場合は、環境に MXNet、Keras 1、Python 3、および CUDA 10.1 が存在しています。また、この環境を有効化するには、次のコマンドを使用します。
`$ source activate mxnet_p36`

# 公式ドキュメント通りやる

**起動時に出てきたコマンド**
```
Please use one of the following commands to start the required environment with the framework of your choice:
for TensorFlow 2.7 with Python3.8 (CUDA 11.2 and Intel MKL-DNN) __________________ source activate tensorflow2_p38
for PyTorch 1.11 with Python3.9 (CUDA 11.5 and Intel MKL)____________________________ source activate pytorch_p39
for Apache MXNet 1.9 (+Keras2) with Python3.8 (CUDA 11.2 and Intel MKL-DNN)__________________ source activate mxnet_p38

for Apache MXNet(+AWS Neuron) with Python3 ______________________________________________________ source activate aws_neuron_mxnet_p36
for TensorFlow(+AWS Neuron) with Python3 _____________________________________________ source activate aws_neuron_tensorflow_p36
for PyTorch (+AWS Neuron) with Python3 __________________________________________________ source activate aws_neuron_pytorch_p36

for TensorFlow 2(+Amazon Elastic Inference) with Python3 ______________________________ source activate amazonei_tensorflow2_p36
for PyTorch 1.5.1 (+Amazon Elastic Inference) with Python3 _________________________ source activate amazonei_pytorch_latest_p37
for Apache MXNet(+Amazon Elastic Inference) with Python3 __________________________________________ source activate amazonei_mxnet_p36
for base Python3 (CUDA 11.0) ___________________________________________________________________________ source activate python3
```

**pytorch仮想環境を有効化する**
```
# source activate pytorch_p39
```

**エラー**
```
-bash: activate: No such file or directory
```

# 解決策
デフォルトでanacondaが入っていないようなので、インストールし、実行方法を少し変えたらできました。途中バージョンからデフォルトでanacondaが入らないようになったっぽいです。

**Anacondaインストール用シェルスクリプト**
```
#!/bin/sh

wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh
bash ./Anaconda3-2022.05-Linux-x86_64.sh
```

**再起動し、再度仮想環境有効化を試すとまたエラー吐かれる**
```
# source activate pytorch_p39
Could not find conda environment: pytorch_p39
You can list all discoverable environments with `conda info --envs`.
```

**有効化できる仮想環境を確認**
```
# conda info --envs
                         /home/ec2-user/anaconda3
                         /home/ec2-user/anaconda3/envs/amazonei_mxnet_p36
                         /home/ec2-user/anaconda3/envs/amazonei_pytorch_latest_p37
                         /home/ec2-user/anaconda3/envs/amazonei_tensorflow2_p36
                         /home/ec2-user/anaconda3/envs/aws_neuron_mxnet_p36
                         /home/ec2-user/anaconda3/envs/aws_neuron_pytorch_p36
                         /home/ec2-user/anaconda3/envs/aws_neuron_tensorflow_p36
                         /home/ec2-user/anaconda3/envs/mxnet_p38
                         /home/ec2-user/anaconda3/envs/python3
                         /home/ec2-user/anaconda3/envs/pytorch_p39
                         /home/ec2-user/anaconda3/envs/tensorflow2_p38
base                  *  /root/anaconda3
```

**フルパスで実行してみたら上手くいった**
```
# source activate  /home/ec2-user/anaconda3/envs/pytorch_p39
```


# バージョン情報

- AMI: Deep Learning AMI (Amazon Linux 2) Version 62
- Instance type: c4.large
- Region: 東京