リモートサーバにjupyter notebook環境を構築する
pythonを使ってデータ分析する際jupyter notebookがほんとに便利
普段はローカルPCにたてて色々なことをするが、メモリ容量が足りず落ちることが頻繁に発生したので、aws上のリモートサーバにjupyer notebookのリモートサーバ環境を構築する。
pyenv
jupyterの公式ドキュメントでもただのpythonではなく、色々詰まったcondaを入れたほうが良いとのことで、pyenv・condaのインストールから行う。
# pyenvのインストールとパスを通す $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc $ source ~/.bashrc # インストール可能なcondaのバージョンを確認 $ pyenv install -l | grep anaconda # condaのインストール $ pyenv install anaconda3-5.3.0 # PATHの参照順序を整理 $ pyenv rehash # デフォルトでcondaを使うように変更 $ pyenv global anaconda3-5.3.0 # condaコマンドのパスを通す $ echo 'export PATH="$PYENV_ROOT/versions/anaconda3-3.3.0/bin/:$PATH"' >> ~/.bashrc $ source ~/.bashrc # condaのパッケージを最新版に更新 $ conda update conda # jupyterの起動 $ jupyter notebook
jupyter notebook
を実行して正常起動されればjupyterのインストールまで完了!
次は、アクセスする際にパスワードを設定する。
# パスワードのハッシュの作成 $ ipython In [1]: from notebook.auth import passwd In [2]: passwd() Enter password: Verify password: Out[2]: 'sha1:9c1eb1db4bf0...'
~/.jupyter/jupyter_notebook_config.py
に上記で生成したパスワードを含めた設定ファイルを作成する
c = get_config() # 全てのIPから接続を許可 c.NotebookApp.ip = '*' c.NotebookApp.password = u'sha1:9c1eb1db4bf0...' #ブラウザは立ち上げない c.NotebookApp.open_browser = False # 特定のポートに指定(デフォルトは8888) c.NotebookApp.port = 9999
これで、再度jupyter notebookを起動して、9999番ポートにアクセスしたらめでたしめでたし。