Virtualboxにjupyter環境を構築してみた

#はじめに
Virtualboxで稼働中のCentOS8に、jupyter環境を構築してみたので、その備忘録として残しておきます。

#前提条件

・OS環境は、Virtualboxで稼働中のCentOS8.1です。以下、OS詳細情報となります。

```php
# cat /etc/centos-release
CentOS Linux release 8.1.1911 (Core)
```

・Virtualboxのネットワーク設定は、「NAT」「ホストオンリーアダプター」で構成。


・OSの初期設定が完了していること。

#手順概要

手順は、以下の順におこなっていきます。

(1)pyenvインストール
(2)Anacondaインストール
(3)jupyterの設定/jupyterを起動

※今回は、Anacondaというpythonに必要なライブラリが、あらかじめ同梱されているディストリビューションを使用する手法でやっていきます。(jupyterも同梱済みである)


#(1)pyenvインストール
▼penvの必須パッケージをインストール

```
# dnf -y install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel git tar
```

▼pyenvをインストール

```
# git clone http://github.com/yyuu/pyenv.git $HOME/.pyenv
```


▼pyenvの設定を追加

```$HOME/.bash_profile
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
```


▼設定ファイルの再読み込みを実施

```
# source $HOME/.bash_profile
```

▼現在使用している環境を確認

```
# pyenv versions
↓現環境では、何もインストールしてないので、こうなると思います。
[root@localhost ~]# pyenv versions
Warning: no Python detected on the system
```

#(2)Anacondaインストール

▼インストール可能なAnacondaを確認

```
# pyenv install --list | grep anaconda
↓以下、出力結果
[root@localhost ~]#  pyenv install --list | grep anaconda
  anaconda-1.4.0
  anaconda-1.5.0
  anaconda-1.5.1
  anaconda-1.6.0
  anaconda-1.6.1
  anaconda-1.7.0
  anaconda-1.8.0
  anaconda-1.9.0
  anaconda-1.9.1
  anaconda-1.9.2
  anaconda-2.0.0
  anaconda-2.0.1
  anaconda-2.1.0
  anaconda-2.2.0
  anaconda-2.3.0
  anaconda-2.4.0
  anaconda-4.0.0
  anaconda2-2.4.0
  anaconda2-2.4.1
  anaconda2-2.5.0
  anaconda2-4.0.0
  anaconda2-4.1.0
  anaconda2-4.1.1
  anaconda2-4.2.0
  anaconda2-4.3.0
  anaconda2-4.3.1
  anaconda2-4.4.0
  anaconda2-5.0.0
  anaconda2-5.0.1
  anaconda2-5.1.0
  anaconda2-5.2.0
  anaconda2-5.3.0
  anaconda2-5.3.1
  anaconda2-2018.12
  anaconda2-2019.03
  anaconda2-2019.07
  anaconda3-2.0.0
  anaconda3-2.0.1
  anaconda3-2.1.0
  anaconda3-2.2.0
  anaconda3-2.3.0
  anaconda3-2.4.0
  anaconda3-2.4.1
  anaconda3-2.5.0
  anaconda3-4.0.0
  anaconda3-4.1.0
  anaconda3-4.1.1
  anaconda3-4.2.0
  anaconda3-4.3.0
  anaconda3-4.3.1
  anaconda3-4.4.0
  anaconda3-5.0.0
  anaconda3-5.0.1
  anaconda3-5.1.0
  anaconda3-5.2.0
  anaconda3-5.3.0
  anaconda3-5.3.1
  anaconda3-2018.12
  anaconda3-2019.03
  anaconda3-2019.07
  anaconda3-2019.10
```

▼Anacondaをインストール(今回は3-5.3.1をインストールする)

```
# time pyenv install anaconda3-5.3.1
↓以下、出力結果
[root@localhost ~]# time pyenv install anaconda3-5.3.1
Downloading Anaconda3-5.3.1-Linux-x86_64.sh.sh...
-> https://repo.continuum.io/archive/Anaconda3-5.3.1-Linux-x86_64.sh
Installing Anaconda3-5.3.1-Linux-x86_64.sh...
Installed Anaconda3-5.3.1-Linux-x86_64.sh to /root/.pyenv/versions/anaconda3-5.3.1

real    36m44.738s
user    3m37.742s
sys     0m49.084s
```

※Anacondaのインストールは時間がかかり、進捗バーのようなものが表示されないので不安にはなるが、気長に待つべし！！

▼Anacondaインストール後の確認

```
# pyenv versions
↓以下出力結果
[root@localhost ~]# pyenv versions
  anaconda3-5.3.1
```

※インストールしたAnacondaのバージョンが表示されればOK。

▼メインで使用するPython環境を「anaconda3-5.3.1」に指定

```
# pyenv global anaconda3-5.3.1
```

▼切り替え後の確認

```
# pyenv version
↓以下、出力結果
[root@localhost ~]# pyenv versions
anaconda3-5.3.1 (set by /root/.pyenv/version)
```

※「(set by ・・・)」とついていればOK

▼condaコマンドのバージョン確認

```
# conda --version
↓出力結果
[root@localhost ~]#  conda --version
conda 4.5.11
```

▼Pythonのバージョン確認

```
# python -V
↓出力結果
[root@localhost ~]# python -V
Python 3.7.0
```

▼Anacondaの更新パッケージのインストール

```
# conda update --all
```


#(3)jupyterの設定/jupyterを起動

▼jupyterの設定ファイルを生成

```
# jupyter notebook --generate-config
```

▼作成後の確認

```
# ls -la $HOME/.jupyter/jupyter_notebook_config.py
```

※デフォルトの設定では、「/$HOME/.jupyter/jupyter_notebook_config.py」に設定ファイルが生成される。


▼jupyterの設定値を変更

```$HOME/.jupyter/jupyter_notebook_config.py
#変更点①(接続許可範囲を指定)
#c.NotebookApp.ip = 'localhost'
↓
c.NotebookApp.ip = '0.0.0.0'

#変更点②(ポートを変更)
#c.NotebookApp.port = 8888
↓
c.NotebookApp.port = 8989

#変更点③(ローカルでのブラウザの自動起動を無効化)
#c.NotebookApp.open_browser = True
↓
c.NotebookApp.open_browser = False

```

▼jupyter notebookを起動

```
# jupyter notebook --allow-root
↓jupyter labが好みの方はこっち
# jupyter lab --allow-root
```

※「--allow-root」は、rootユーザで「jupyter notebook」「jupyter lab」を実行する際に必要なオプション
※jupyterは、「Ctrl」＋「C」で終了することができる

これで、Pythonの動作検証をjupyter 環境で行えるようになります！！


#以下、仮想環境の設定メモ

condaコマンドで仮想環境を作成するメモも以下に記述します。


##Pythonの仮想環境を作成

▼condaコマンドで仮想環境「test-python37」を作成

```
# time conda create -y -n test-python37 python=3.7.0 anaconda

real    29m20.858s
user    18m28.537s
sys     0m20.358s
```

※Anaconda環境を作成するので、時間はかかります。

▼仮想環境作成後の確認

```
# pyenv versions

* anaconda3-5.3.1 (set by /root/.pyenv/version)
  anaconda3-5.3.1/envs/test-python37
```

▼condaコマンドの仮想環境関連のパスを通す

```
# echo ". /root/.pyenv/versions/anaconda3-5.3.1/etc/profile.d/conda.sh" >> $HOME/.bashrc
```

▼ファイルの再読み込み

```
# source $HOME/.bashrc
```

▼仮想環境「test-python37」に入る(activeに切り替え)

```
# conda activate test-python37
↓切り替え後の表示
(test-python37) [root@localhost ~]#
```

▼仮想環境「test-python37」から抜ける

```
# conda deactivate
↓切り替え後の表示
[root@localhost ~]#
```

※これで、環境を分けたPythonの動作テストが行えます。



#参考URL
http://pppurple.hatenablog.com/entry/2016/05/07/211558
https://qiita.com/taka4sato/items/2c3397ff34c440044978