素人がDocker,Anaconda,Pythonを使って、Tellusから水温データとクロロフィルa濃度のデータを取得し、釣りに行くまで　”part1”

>**<font color="Red">注意！</font>**
**結論から申しますと、この記事は、私のやりたい事に対する環境構築としては失敗しておりますので、あまり参考にされない方がよろしいかと思います。後日part2として記事をUP致しますので、そちらで解説を行っていこうと思います。**


私は最近釣りにハマっていて、水温データとクロロフィルa濃度を使って釣り場を特定するwebアプリを作ろうと思い立った。

google先生と押し問答を続けた結果、最終的にたどり着いたサイトが[**こちら**](https://tellusxdp.github.io/start-python-with-tellus/tellus_fishery.html)
anacondaで仮想環境を構築していざ挑戦！と思っていたのもつかの間…

んー…必要なモジュールのインストールの時点でWindowsに対応してないし…
調べれば調べるほど、バージョンの問題やら競合やら色々出てきて結局動かず…

いっそのことDockerを使ってcentos7の仮想環境上で試してみようと思う。
Dockerを使うこと自体は初めてではないのだが、以前知り合いに導入してもらった、たった一つの環境を擦り切れるほど使っていた。
だが今回、初めてDockerを一から操作して、仮想環境を構築することを決意。

備忘録を残せば、あとで見返せる＆outputもできて記憶に留めることができると聞いたことがあるので、ブログにも初めて挑戦する。

## Dockerの環境構築

とりあえずDockerのインストールは終わっているので、PowerShellを開いてコマンドで操作していく

まずはDockerイメージを取得して
```
docker pull centos:centos7
```

コンテナを作成&起動
```
docker run -it --name="Tellus" centos:centos7 /bin/bash
```

## Centos7の設定

コマンドパッケージをインストールする
```
yum -y install sudo
```

pyenvの[github](https://github.com/pyenv/pyenv#installation)
を見ていると必要なコマンドパッケージがあるらしく、そちらもインストール
これをインストールしないとPythonをインストールできずにエラーが起こり、台パンすることになる。
```
yum install gcc make zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel
```

その後、色々調べていくと、どうやら[root]のアカウントは使用しない方がいいらしい

ということで、新しいアカウントの作成と
```
useradd ユーザー名
```
パスワードの設定を行う
```
passwd ユーザー名
```
新規に作成したユーザーへの切り替え
この時に、パスワード入力も求められるのだが、webサイト等のパスワード入力のように[****]と分かりやすい記号が出てくるわけではなく無言。(間違えたときに修正するのが面倒…)

```
su - ユーザー名
```
と、ここまでスムーズにできたわけではなく、紆余曲折あり数回台パンを繰り出した。

続いてpyenvを導入していく

# pyenvの導入
pyenvやAnacondaの導入に関して、色々なサイトがあるが結局一番わかりやすかったのは[**GitHub**](https://github.com/pyenv/pyenv#installation)

pyenvをGitHubからダウンロード
```
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
```
コマンドのPATHを通していくのだが、この時に注意すべきなのが、[~/.bashrc]、[~/.profile]、[~/.bash_profile]
このすべてにPATHを通さないとpyenvのコマンドを認識してくれないため台パンする。

まずは、[~/.bashrc]
```
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
```
次に、[~/.profile]
```
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.profile
```

最後に、[~/.bash_profile]
（順番は関係ない）
```
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
```

そして、変更したPATHを有効にするためにシェルを再起動してpyenvは終了

# Anacondaの導入
ここまで来れたらあとは簡単！

まずはAnacondaのバージョンを確認して、どれを入れるか決める
```
pyenv install -l | grep anaconda
```

入れたいバージョンに合わせてインストール
```
pyenv install anaconda3-2020.07
```
ちなみに、バージョン指定しないと最新バージョンを導入する
```
pyenv install anaconda3
```
次に、AnacondaのPATHを通していく

```
pyenv rehash
pyenv global anaconda3-2020.07
echo 'export PATH="$PYENV_ROOT/versions/anaconda3-2020.07/bin/:$PATH"' >> ~/.bashrc
```

一度ログインし直す
```
su - $ユーザー名
```
condaコマンドが実行できれば成功！
```
conda info
```

ここまで来るのに、一日かかってようやく仮想環境を構築することができた…

# 参考サイト
[**【入門】はじめての Docker Desktop for Windows のインストールと CentOS の仮想環境構築のセットアップ**](https://qiita.com/gahoh/items/7b21377b5c9e3ffddf4a)
[**pyenv GitHub**](https://github.com/pyenv/pyenv#installation)
[**CentOS7にAnacondaをインストールする手順**](https://mebee.info/2021/01/07/post-27604/)