MLのお砂場(1) 「とりあえず」JupyterLab環境はセットアップしたけれども

Joseph Halfmoon

「お砂場」シリーズ第3弾「MLのお砂場」始めることにいたしました。ML=Machine Learningです。MLなのでPythonメインでやる、ということは決めたのですが、Python系の「環境」いろいろありすぎてどうしたものかと考え中です。ポピュラーでお手軽に使えるものから「お砂場」ついでにいろいろ使ってみるかと。

手元の装置上のPython処理系、無計画にインストールしてきたので混乱の極みといってもいいかもしれません。

Python使い始めたのは7,8年前なので、それほど使用歴が長いわけでもありません。それも最初は 2.7系でした。2.7 系でないと動作しないモジュールを指定していたソフトがあり、そのためだったと記憶しています。でも急速に3.x対応が進みました。2020年の切り替え期限を前に2019年秋頃になって自分では2.7系でスクリプトを書くことは止め、3.7に移行したのです。しかし、古いソフトで2.7必要なものが残っていて、2.7未だにアンインストールはしてません。

Windows機の3.x系に限っても、WindowsでPythonとやるとインストールできるMS環境のもの、MSYS上で動くもの、ソフトウエアをインストールすると同時にインストールされるもの(いつもお世話になっているPlatformIOは、自分の動作のためにPython処理系を含んでいます)、WSL上のものなど複数が併存。それぞれに用途が出来てしまったので、コマンドプロンプト等も複数開けるようにしてあり、コマンドプロンプト毎にプロンプト文字列に「使えるPythonバージョン」の「識別」記号を表示しているような状況です。

ズルズルと使ってきたのでPython開発環境も迷走してます。私はPythonでGUI書いたり、Webアプリを書くことはほぼ無いので、単独スクリプトとして走らせるか、何かのソフトの後ろで走らせるような使い方ばかりです。

Windows上では初期は秀丸エディタで記述してました。しかし、数年前にPython書きは、VSCodeに移行しました。VSCodeであると、コンテキストで補完候補を出してくれるだけでなく、常にlintもかけてくれます。結構これが良かったです。走らせる前にエラーが見つかるので手間が少なくなる感じ。昨年からVScodeのバックエンドで走るのがPylanceに切り替わってさらによくなった印象がします。

元々、あまり複雑な事をする気が無かったので、仮想環境の方はなるべく使わずに生きてきました。しかし、Pythonと一緒に動く処理系、とくにAI系は、他と食い合うようなものがあり仮想環境を使わないとならないことがあります。そういう時だけは使ってきました。そういう付き合い方だったので、モジュールの依存関係も複雑怪奇に絡まってしまいました。

また多くの人が使っているらしい Notebook式のJupyterなどは全く手を出してきませんでした。

さて今回からは、近代化を図るべく、以下のような方針で進めていってみようと思います。

  1. 最低、標準の仮想環境 venv は使う
  2. 基本、各種モジュールはPIPで個別にインストール
  3. Jupyter-Lab と VSCode の両方を使ってみる
  4. なるべくノートブック形式で「お砂場」をする

まあ後で変えるかもしれません。まず仮想環境はとりあえず以下です。

venv — 仮想環境の作成

jupyterの公式は以下です。

jupyter.org

VScodeでPylanceの様子

以前からお世話になっていた機能が以下です。VScodeでPythonスクリプトを編集すると、裏でPylanceがいろいろ世話を焼いてくれるのはご存じのことと思います。単独動作のスクリプト・ファイルを作るときは、今後もこの環境かと。こんな感じ。

Pylance

JupyterLabの様子

Jupyter notebookへ乗り遅れたので、今回はJupyterLabという新しめのUI?を使ってみることにいたしました。基本、中で走っているのはJupyter notebookみたいなので、使う上では特別なこともないような気もします。起動するとブラウザ上で以下のような画面が表示されます。まあ最近流行りなブラウザIDEの感じ?

jupiterlabTop

一番上にある、Notebookをクリックすれば、「普通の」Jupyter notebookとして使えると。こんな感じ。

NoteBook

また、notebookのタブの横にHELPウインドウなどを開いておくと、ノートブック画面でセルを選択するとそいつの説明をHELPウインドウで教えてくれたりもします。その辺がJupyter-Labの便利な機能の一端なのかな? まだ実感ないけれど。

ContextualHelp

コンソールウインドウというものも開けるのですが、これは何が便利なのかイマイチ不明。まあこれも使ってみますが。

console

他にもいろいろUIの切り口が多いので、ゆるゆると使い方を探って行きたいと思います。

VScodeの中のJupyter Notebook

一方、VScodeの中からもJupyter Notebookを起動できます。以下のチュートリアル画面で、ボタンを押せばすぐに立ち上がってきます。

VScodeJupyterNotebook

VScodeは「ダーク」なテーマで使っているので見た目の印象が大分異なりますな。これならこんがらがることは無いか。

VScodeの中で動いているので、以下の画面キャプチャのように「補完」が効きます。VScodeだし当然か。また、実行すると処理時間をイチイチ報告してきます。venv仮想環境も自動で立ち上げてくれましたが、立ち上げに一拍時間がかかります。しょうが無いか、ノージンジャー。

JupyterInVScodeC

まあ、いろいろありそうなので、当面はこの2つを軸に使用して「お砂場」していきたいと思います。

MLのお砂場(2) 「続いて」scikit-learnインストールと動作確認したけれども へ進む