pyenv+anaconda+jupyterlab(+リモート接続許可設定)環境構築

# 前提
pyenvの導入前にgitの導入を済ませておきます。
[CentOS7に最新版のgitを導入してみた](https://qiita.com/kod314/items/2a0b30ded6063f389771)

# pyenvの導入
【参考URL】
[pyenv git](https://github.com/pyenv/pyenv)

```bash:pyenv導入手順
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
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
source ~/.bash_profile
exec $SHELL -l

pyenv —version
# > pyenv 1.2.1-7-gf114557
```

# 最新版のanacondaを導入

```bash
pyenv install -l
pyenv install anaconda3-5.0.1
pyenv versions # 導入済みバージョンの表示
pyenv global anaconda3-5.0.1
python —version
# > Python 3.6.3 :: Anaconda, Inc.
jupyter —version
# > 4.3.0
```

# jupyter labのリモート接続設定
最新版のanacondaを導入したらjupyter labがデフォルトで導入されていたのでjupyter labの導入は割愛。

```bash
pip install --upgrade jupyter # upgradeしておかないとうまくサーバと接続できなかった
jupyter notebook --generate-config # jupyterのconfigファイルを生成

# ipythonを起動し、下記のようにshaのパスワードを生成する
ipython
In [1]: from IPython.lib import passwd
In [2]: passwd()
# パスワードを打ち込むとハッシュ値が生成(sha1:XXXXXXX)されるので、適当なエディタにコピーしておく
```

```bash:~/.jupyter/jupyter_notebook_config.py
# ファイル末尾に下記を追記
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip = '*' # 接続元のIP許可設定
c.NotebookApp.open_browser = False
c.NotebookApp.port = 9999 # 起動時のポート番号
c.NotebookApp.password = u'sha1:XXXXXXX（ハッシュ値をここに記載）'
```
firewalldでファイアウォールの穴あけを行う。

```bash
firewall-cmd --list-all-zone --permanent # 事前情報の確認
firewall-cmd --zone=public --add-port=9999/tcp --permanent # 9999番ポートを許可
firewall-cmd --list-all-zone --permanent # publicゾーンに9999ポートの許可設定が追加されているか確認
firewall-cmd --reload # 設定の反映
```

ここまでの設定で起動できるか確認しておく。
`http://xx.xx.xx.xx:9999`で接続してみる。

# jupyterlabの設定
### ホームディレクトリの設定
```bash:~/.jupyter/jupyter_notebook_config.py
# 下記部分ににパスを記述
c.NotebookApp.notebook_dir = ''
```
### テーマの変更
目に優しいDarkに変えてみた。
File>Settings>Themeの記述を下記のように変更する。
![スクリーンショット 2018-02-03 22.53.12.png](https://qiita-image-store.s3.amazonaws.com/0/165019/34f030b2-7d53-8550-fecb-e58f4e3dd85a.png)

フォントの細かい配色設定は下記ファイルを編集すればよい。
`/root/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/jupyterlab/themes/jupyterlab-theme-dark-extension/variables.css`

```css:variables.css
  /* Code mirror specific styles */

  --jp-mirror-editor-keyword-color: var(--md-green-500);
  --jp-mirror-editor-atom-color: var(--md-blue-300);
  --jp-mirror-editor-number-color: var(--md-green-400);
  --jp-mirror-editor-def-color: var(--md-blue-600);
  --jp-mirror-editor-variable-color: var(--md-grey-300);
  --jp-mirror-editor-variable-2-color: var(--md-grey-500);
  --jp-mirror-editor-variable-3-color: var(--md-grey-600);
  --jp-mirror-editor-punctuation-color: var(--md-blue-400);
  --jp-mirror-editor-property-color: var(--md-blue-400);
  --jp-mirror-editor-operator-color: #AA22FF;
  --jp-mirror-editor-comment-color: #408080;
  --jp-mirror-editor-string-color: #BA2121;
  --jp-mirror-editor-string-2-color: #f50;
  --jp-mirror-editor-meta-color: #AA22FF;
  --jp-mirror-editor-qualifier-color: #555;
  --jp-mirror-editor-builtin-color: var(--md-green-600);
  --jp-mirror-editor-bracket-color: #997;
  --jp-mirror-editor-tag-color: var(--md-green-700);
  --jp-mirror-editor-attribute-color: var(--md-blue-700);
  --jp-mirror-editor-header-color: var(--md-blue-500);
  --jp-mirror-editor-quote-color: var(--md-green-300);
  --jp-mirror-editor-link-color: var(--md-blue-700);
  --jp-mirror-editor-error-color: #f00;
  --jp-mirror-editor-hr-color: #999;
```