注意(2022.11.15)
Termuxをベースとしたjupyterlab環境について、Termuxをupgradeすると、pythonのバージョンまで上がってしまい、元のpython環境を再現できなくなってしまったようです。。
今後は、こちらを参考に頂いた方がよいかもしれません。。
参考リンク:Termux Wiki
以前からの紹介内容(今後は、以下のやり方では、Termuxのupgrade時に上手く動かなくなる可能性があります。。)
今回は、Cosmo Communicator+Termuxの環境にJupyterLabを導入するところまでの紹介です。
昨今では、Google Colaboratoryがあるのでは?という疑義はありますが、選択肢は多い方がよいし、ローカル環境をベースとしてpythonを触ることも、楽しいと思います^_^
個人的に、numpy, pandas, matplotlibを使えるのであれば、pythonプログラミングの自学習、統計解析の自学習、またDeep Learningの基礎的な原理を学ぶための環境としては、ひとまず十分なのではないかと考えています。
また、Termux環境ならではのデータハンドリングや、その活用も見出せるのではないでしょうか。
それ以外でも、もしキーボードガジェットが好き過ぎる人にとって、キーボードガジェットと向き合う際の、正当な理由が一つでも増えたのなら、この上ない喜びです^_^;
JupyterLabとは
JupyterLabとは、pythonコードを逐次実行によって処理結果を確認しながら作業を進めることができる、Jupyter NoteBookの進化版です。Visual Studio Codeと似ている、近年のデータ分析を支えたり、サービス開発を担うための統合開発環境ツールの一つといえるのではないでしょうか。
前提条件
Termuxのインストールについては、こちらをご参照ください。
また、マウスによる操作は必須といえます。もし、携帯可能な極小マウスにご興味があれば、こちらもご参照ください。
インストールしたパッケージ
Termux上で以下のコマンドを実行したテキストファイルから”pkg”コマンドを抽出した結果です。そのため、全てのパッケージがJupyterLabに必須というわけではありませんので、ご承知おきください。
$ history > history.txt
あくまで作業環境の事例として、参考なれば幸いです^_^;
$ pkg install vim
$ pkg install tmux
$ pkg install cmatrix
$ pkg install nodejs
$ pkg install clang
$ pkg install python
$ pkg install curl
$ pkg install git
$ pkg install grep
$ pkg install zlib pkg-config fftw freetype libzmq
$ pkg install libjpeg-turbo libjpeg-turbo-progs libjpeg-turbo-dev
$ pkg install x11-repo
一度、パッケージをアップグレードしておきます。
$ pkg upgrade
私の環境ではpythonバージョンは、以下となっています。
$ python --version
Python 3.9.5
インストールしたpipパッケージ
pipとは、pythonコードのソフトウェアパッケージ管理システムです。このシステムを用いることにより、pythonコードのソフトウェア管理(インストール、アンインストール、メンテナンスなど)が容易になります。
$ pip install --upgrade pip
こちらも、上述のテキストファイルから”pip”コマンドを抽出した結果なので、あくまで環境事例と考えていただければ幸いです。
$ pip install -U setuptools
$ pip install numpy
$ pip install pandas
$ pip install matplotlib
$ pip install jupyterlab
SciPyというpythonのための科学的ツールとして開発されているオープンソース・ライブラリがあります。PCの場合は、pipコマンドからインストールできるのですが、Termuxではワンクッション、シェルスクリプトを走らせてからpkgコマンドでインストールします。
$ curl -LO https://its-pointless.github.io/setup-pointless-repo.sh
$ bash setup-pointless-repo.sh
$ pkg install scipy
その他、以下のようなパッケージもインストールしています。
$ pip install gym
$ pip install JSAnimation
$ pip install pyglet
$ pip install statsmodels==0.10.2
$ pip install plotutils
$ pip install ipywidgets
statsmodelsは、私の環境では最新バージョンをインストールできなかったので、0.10.2をインストールしています。あらかじめ、バージョンを指定して実行しています。
インストールしたpipパッケージは、以下のコマンドから、バージョンとともに確認できます。
$ pip list
これで、一旦、ソフトウェア環境を整えることができました。
JupyterLabの起動と終了
JupyterLabの起動と終了、また簡単な設定を紹介したいと思います。
JupyterLabの起動
コマンド実行したディレクトリが、JupyterLab上のRootディレクトリになるので、適切なディレクトリであるかを確認してから実行してください。
以下のコマンドにて、JupyterLabを起動します。
$ jupyter lab
スクリーンショットのように内部サーバーが立ち上がりますので、示されたローカルホスト+トークンのURLをコピーします。
コピーしたURLを、別途、立ち上げたブラウザに張り付け、リンクを開きます。
この立ち上がったブラウザが作業環境になります。メインウィンドウのLauncherメニューか、もしくは「+」アイコンからNotebook、Terminal、テキストファイルを新規作成したり、エクスプローラからファイルを開いて、ウィンドウを自由に配置し、作業することができます。
左端のディレクトリアイコンをクリックするとエクスプローラを開閉でき、作業ウィンドウを広く使うことができます。
立ち上がった作業環境のURL(ローカルホスト+トークン)は、ブラウザ設定から「ホーム画面に追加」することで、環境をホーム画面に保存することができます。
これで、次回のJupyterLab起動時からは、ホーム画面のアイコンからJupyterLabの作業環境を立ち上げることができます。
JupyterLabの設定(最小限)
Settingsメニューから、2項目だけ、ごく簡単に紹介いたします。
Advanced Settings Editor
非常に細かくカスタマイズできますが、ここではjupyter Notebookにラインナンバーを追加しています。
左端の項目から「Notebook」を選択し、左側画面のSystem Defaultsの内容を、右側画面のUser Preferencesで上書きすることで設定をカスタマイズしていきます。
ここでは、”lineNumbers”:false -> “lineNumbers”:trueに変更することで、jupyter note bookにラインナンバーを追加するように変更しています。
Enable Extension Manager
こちらをチェックすることで、JupyterLabの機能拡張を使用できるようになります。
左端のパズルのピースの形をしたアイコンをクリックすると、スクリーンショットのようなメニューが現れます。
自分の設定では、Jupyter NoteBookでもVIMライクな編集ができるようにするjupyterlab_vimの機能拡張を追加しています。
拡張機能は、SEARCHフィールドからキーワードで検索すると、機能拡張候補リストが表示されるので、その中から目当ての機能拡張をインストールします。
もし、インストール時にビルドできない旨のメッセージがあった場合は、一度、JupyterLabを終了して、Termuxから以下のコマンドを実行すると、上手くいくかもしれません。
$ jupyter lab build
メモリ不足になることが多いようなので、なるべくTermuxだけ立ち上げて、シングルセッションで実施するのが最善だと思います。
JupyterLabの終了
ブラウザ作業環境のfileメニューから「shut down」を選択すると終了できます。
または、Jupyter lab起動中のTermuxセッションで、以下を実行し、”y”を入力すると終了できます。
- 終了:Ctrl + c
JupyterLabを使う
ほんのわずかですが、ごく簡単な作業事例を紹介したいと思います。
JupyterLabのNoteBookでデータハンドリング
タスク例:Termuxにインストールしたパッケージを確認する
- Terminalからhistoryコマンドを実行して、アウトプットしたテキストファイルを作成する
- 作成したテキストファイルを表示しながら、データ構造を把握する
- pandasでテーブル化して「pkg」や「pip」で抽出し、各パッケージのリストを作成する
みたいな一連の作業を一つのブラウザ画面の作業環境から実施しています。
JupyterLabのNoteBookでグラフ表示
表示例:活性化関数Swishを表示する
入力値にシグモイド関数の出力を掛け合わせた構造をした活性化関数Swishを、Notebookにグラフ表示しています。
ターミナルからコードを実行し、出力したグラフファイルを表示
表示例:適当に作成した関数のグラフファイルを表示をする
作成したpythonファイルをTerminalから実行し、生成されたpngファイルを開いて表示しています。
Termuxで使用する際の制限事項
Termuxでお手軽にJupyterlabを使える一方で、非常に残念ながら以下のような制限も認められました。ひょっとしたら、上手くいく方法はあるかもしれませんが。。もし情報お持ちでしたら、教えてもらえるとうれしいです^_^;
- コード補完機能が上手く動作しない
- Jupyterlabの機能拡張で上手く動作しないものがある
- openglが動かない
- 機械学習のライブラリscikit-learnがインストールできない
- Deep Learning関連のフレームワーク(TensorFlow、Pytorchなど)がインストールできない
最後に
いかがでしたでしょうか。TermuxでJupyterLabを使用することは、いくつか制限はあるものの、個々人のパーソナリティにより、意外と使い道があるのではないかな、と考えています。
このようなキーボードガジェットに親しみながらも、いろいろな気づきや学びに繋げていけることを、一部でも示せたなら幸いに思います。
また、最近は出社時に会社のノートPCを持ち歩かなければならず、自分のノートPCまでは持ち歩けないような方や、そもそも重い荷物など持ち歩きたくない!という方にとっても、cosmo communicatorのようなキーボードガジェットは、気軽に持ち歩ける良い相棒になってくれるのではないでしょうか。
今後は、統計解析やDeep Learningの基礎的概念を学ぶのに、どのくらいまでなら役に立てそうか、試していきたいと思っています。
参考情報:UDEMY
Linuxの学習に興味をもった方は、こちらをご参照ください。
Linux(ubuntu)環境を学びたい方へのリンク 現役シリコンバレーエンジニアが教える NeoVim(VIM) + Tmux + Zsh 入門pythonに、まずは親しみたい方、体系的に学びたい方は、こちらがおすすめです。
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル 米国データサイエンティストがやさしく教えるデータサイエンスのためのPython講座 NumPy+matplotlib実践トレーニング -機械学習、深層学習の基礎として学ぶデータの操作と可視化- pandasの基礎 – 再入門 – / 本当に使えるようになるための実習 【世界で55万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜独学には、Udemyのオンライン教材によるハンズオンがおすすめです。定期的にセールしているので、一旦、WebかアプリからUdemyアカウントを作成し、気に入った教材をお気に入りとして登録し、セールのときにまとめて購入して受講するなどが、お得です。
コメント