pyenv + anaconda + jupyterlab (+ 원격 연결 권한 설정) 환경 구축

전제



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;

좋은 웹페이지 즐겨찾기