前提
pyenvの導入前にgitの導入を済ませておきます。
CentOS7に最新版のgitを導入してみた
pyenvの導入
【参考URL】
pyenv git
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を導入
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の導入は割愛。
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)されるので、適当なエディタにコピーしておく
~/.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でファイアウォールの穴あけを行う。
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の設定
ホームディレクトリの設定
~/.jupyter/jupyter_notebook_config.py
# 下記部分ににパスを記述
c.NotebookApp.notebook_dir = ''
テーマの変更
目に優しいDarkに変えてみた。
File>Settings>Themeの記述を下記のように変更する。
フォントの細かい配色設定は下記ファイルを編集すればよい。
/root/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/jupyterlab/themes/jupyterlab-theme-dark-extension/variables.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;