理系的な戯れ

理工学系とくにロボットやドローンに関する計算・プログラミング等の話題を扱って、そのようなことに興味がある人たちのお役に立てればと思っております。

JupyterLabのインストール

f:id:kouhei_ito:20200510180740p:plain

はじめに

こんにちは、こうへいです。

最近は、普段使いの計算環境はJupyterLabにしています。

pythonを使ってちょこちょこ計算をするのに ものすごく便利に使えていて、OSを選ぶ必要がなくて超いけています。 Dropboxのようなローカルと同期してくれる,クラウドストレージ サービスと合わせて使うと、いつでもどこでも計算やプログラムが できる環境が手に入ります。

と言う事で今回はJupyterLab環境の整え方について、自分の備忘録 として書いています。

jupyter.org

Python環境を整える

JupyterLabを使うためにはPythonが入っていないとだめですが、Pythonの環境構築については、 最近やっと自分なりの流儀が確立されつつあります。 今回は簡単に説明して、 後日改めて、備忘録記事を書きたいと思っています。

自分的にはWindowsではAnaconda、LinuxとMacではpyenv+venvで環境を整えています。

www.anaconda.com Windowsにpyenvがあれば良いのですが、まだ完全版がないのでAnacondaを使用しています。 Anacondaは科学計算に欲しくなるモジュールが予めインストールされていて お手軽です。

自分の環境は自分で整えたい人は、pyenvを使うと、任意のバージョンのPythonをインストール できて、なおかついつでも切り替えられます。

さらにvenvを使うと、仮想環境が作れるので、やりたい放題です。

venvについてはPython純正の仮想環境管理ツールというところがお気に入りポイントです。

github.com

qiita.com

docs.python.org

Windows

Anacondaのページからダウンロードしてインストールしてください。難しいことは無いと思います。

Mac

xcodeとHomebrewはあらかじめインストールしておいてください。 これらのインストールの方が時間がかかるかもしれません。

pyenvをインストール

pyenvをインストールします。pyenvを使うと任意のバージョンのpythonを競合させることなく複数インストールできます。必要があればすぐにシステムデフォルトのバージョンに切り替えが可能です。

brew install pyenv

インストールできたら

pyenv install --list

でインストールできるバージョンがリストアップされます。

その中から好きなバージョンを選び次のようにしてインストールします。

pyenv install 3.7.4

使用するpythonを切り替えるには

pyenv global 3.7.4
venvで仮想環境を作る

venvはpythonの仮想環境を構築するツールです。 python3.3以上で標準で使えます。本記事では3.3以上を使用することを前提にします。

新しい仮想環境の作成は

python -m venv 新しい仮想環境の名称

仮想環境にを有効にするには 新しい仮想環境のディレクトリがあるディレクトリまで移動して

source 新しい仮想環境の名称/bin/activate

Ubuntu 20.04

バージョンはこれより少し古くても大丈夫です。(16.04ぐらいならいけると思います。) Macと同じ部分もありますので以下は重複する部分もあります。

pyenvをインストール

pyenvをインストールします。pyenvを使うと任意のバージョンのpythonを競合させることなく複数インストールできます。必要があればすぐにシステムデフォルトのバージョンに切り替えが可能です。 こちらは@neruoneru様のページを参考にさせて頂きました。

最新版に更新されるようにする

sudo apt update
sudo apt upgrade

依存関係を解決するために各種ライブラリをインストールする。必要ない場合もある。

sudo apt install -y build-essential 
sudo apt install -y libffi-dev
sudo apt install -y libssl-dev
sudo apt install -y zlib1g-dev
sudo apt install -y liblzma-dev
sudo apt install -y libbz2-dev libreadline-dev libsqlite3-dev

Gitをインストール。これも既に入っているかもしれません。

sudo apt install -y git

最後にpyenvのインストール

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

shellの初期化スクリプトの以下を追加

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

一応再起動。

インストールできたら

pyenv install --list

でインストールできるバージョンがリストアップされます。

その中から好きなバージョンを選び次のようにしてインストールします。

pyenv install 3.7.4

使用するpythonを切り替えるには

pyenv global 3.7.4
venvで仮想環境を作る

venvはpythonの仮想環境を構築するツールです。 python3.3以上で標準で使えます。本記事では3.3以上を使用することを前提にします。

新しい仮想環境の作成は

python -m venv 新しい仮想環境の名称

仮想環境にを有効にするには 新しい仮想環境のディレクトリがあるディレクトリまで移動して

source 新しい仮想環境の名称/bin/activate

JupyterLabのインストール

まずは本体

Anaconda環境なら
conda install -c conda-forge jupyterlab

念のため、古いnotebookも使えるようにします。

conda install -c conda-forge notebook
pyenv+venv環境なら

普段はpipでモジュールのインストールをしている場合は

pip install jupyterlab
pip install notebook
pip install widgetsnbextension

tqdm

時間がかかる反復計算は本当に計算が進んでいるのかが気になりますので プログレスバーを出してくれる便利なモジュールにtqdmがあります。 jupter labで使うにはちょっとした手間がいります。

まずはtqdmをインストール

Anaconda環境なら
conda install -c conda-forge tqdm
pyenv+venv環境なら
pip install tqdm

以上だとJupyterLabではエラーになり以下をします。

すべて受け売りですが

jupyter nbextension enable --py --sys-prefix widgetsnbextension
jupyter labextension install ipyvolume
jupyter labextension install @jupyter-widgets/jupyterlab-manager@1.0

最後のコマンドはjupyter labのバージョンによって違ってくるそうで こちらのサイトを確認ください。

以上は以下の、いわし様の記事の転載になります。

qiita.com

使い方
from tqdm.notebook import tqdm_notebook as tqdm

y=0
for i in tqdm(range(1000000)):
    y=y+i

print(y)

JupyterLabでmatplotlibをインタラクティブに使う

jupter notebookではmatplotlibを使って、グラフの拡大縮小などが インタラクティブにできました。JupyterLabでは同じ方法では できなくなりましたので対処についてです。

インストール

手抜きですが、以下の参照ページに沿って やってみてください。(時間ができたら転載予定)

github.com

 使い方
%matplotlib widget
import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0.0, 2*np.pi, 100)
y=np.sin(x)

plt.plot(x, y)
plt.show()

node.jsとnpmについて補足

おそらくインストールの途中でnode.jsとnpmが無いと怒られます。 そちらのインストール方法については以下を参考にしてみてください。

nodejs.org

Macなら

brew install node

ubuntuならaptコマンドで入れられます。

sudo apt install nodejs
sudo apt install npm

いろんなOSで色々やってたらいつの間にか上手くいっていた系なので 誤りがあるかもしれません。自己責任でお願いいたします。

おわりに

普段、Windows10とMacとUbuntuを行ったり来たりしてますが JupyterLabさえ入れておけば、すべてのOSで同じことができます。

しかし、インストールの手間は、いつも先達のブログを検索し 見ながらやるので、ついにまとめてしまいました。

これで、サーバ環境を構築すれば、ipad等でも計算ができるので 目指したいのですが手が回らず残念です。

誰かご指南いただけないでしょうか?!