web-dev-qa-db-ja.com

Jupyter Notebook、Lab、拡張機能、およびipywidgetsと本当に混同されています

インタラクティブなJupyterLabNotebookアプリケーションを作成したいので、一連のカスタムウィジェットを作成する必要があります。それで私はこの問題を調べ始めました、そして私が見るほど私はより混乱します。物事を簡単にするために、私はたくさんの簡単な質問をします:

  1. Jupyter Notebookでウィジェットを使用する最も一般的な方法の1つは、ipywidgetsライブラリを使用することです。正しい?
  2. 従来のノートブックとは異なり、JupyterLabのノートブックはJavaScriptを直接レンダリングできません。その結果、ipywidgetsドキュメントでのカスタムウィジェットの作成に関するチュートリアルをJupyterLabで実行することはできません。正しい?
  3. JupyterLabのノートブックでJavaScriptを実行したい場合は、拡張機能を使用して実行する必要があります。 ipywidgetsの場合、@ jupyter-widgets/jupyterlab-managerをインストールする必要があります。正しい?
  4. Ipywidgetsライブラリを使用してカスタムウィジェットを作成する場合は、開始点として使用できる2つのGitHubプロジェクトがあります。widget-cookiecutterとwidget-ts-cookiecutterです。私の理解では、前者はJavaScriptに基づいており、後者はTypeScriptに基づいています。また、最初のタイプはかなりのタイプで非アクティブに見えますが、2番目のタイプはよりアクティブです。 JupyterWidgetsチームはTypeScriptに焦点を当てる予定ですか?どちらに従うべきですか?
  5. Cookiecutterプロジェクトには実際にはドキュメントがありません。私は本当に混乱していて、彼らのコードを理解するのに苦労しています。確かに、それらをコピーして貼り付けて、全体がどのように機能し、コードの「フック」または「エントリポイント」が何であるかがわかるまで、いじり始めることができますが、誰かが私にいくつかの追加のポインタを教えてくれれば本当にありがたいです。
  6. JupyterWidgetsはJupyterプロジェクトの「公式」プロジェクトですか?プロジェクトのメンバーの数が非常に少ないことを考えると、ipywidgetsに基づいて作業を行うのはどれほど安全か疑問に思います。 「DeclarativeWidgets」プロジェクトはずっと前に放棄されたことを覚えておいてください。
  7. Ipywidgetsにあるものよりも多くのウィジェットを実装し、JupyterLabでも実行される他のライブラリはありますか?
  8. サーバー側のデータ処理用のWebアプリケーションを作成したいと思います。私の最初の目標は、ユーザーがコーディングを行うことを期待せず、html/JavaScriptウィジェットを使用してすべてを実行するアプリ/サービスを作成することでした。これは、Angular/ReactフロントエンドとPython/Django/Flaskバックエンドを使用して実装できます。しかし、後で、ユーザーがサーバー上で追加のカスタム/任意の処理を実行したい場合があることに気付きました。これが私がJupyterLabを検討した理由です。たとえば、通常のAngular/Pythonフォント/バックエンドを作成し、これをJupyterLab拡張機能でラップして、ここからデータにアクセスするメカニズムを提供するのが最善かどうか、また可能かどうか疑問に思います。アプリ/サービスをノートブックに持ってきて、さらに処理します。

前もって感謝します

16
AstrOne

一般に、stackoverflowの質問は、一度に1つの質問のみを尋ねるようにする必要があります。そうは言っても、私はできる限り質問に答えようとします。

  1. はい、ipywidgetsが主な方法です。それは人々がノートブックウィジェットについて話すときの意味です。
  2. Jupyterlabリポジトリのjupyterlabで一般的なJSを追跡する際に問題が発生します。
  3. @jupyter-widgets/jupyterlab-managerはjupyterlabのウィジェットです、はい、ただし、ipywidgetsのpythonコードが必要です。 http://ipywidgets.readthedocs.io/en/stable/user_installを参照)詳細については、.html を参照してください。
  4. 一方がJSでもう一方がTSであることは事実ですが、TSの1つにもすべてのベルとホイッスルがあります。したがって、これもより複雑です。 JSの方が必要最低限​​のものであるため、最も重要な部分を理解するのに適している可能性があります。
  5. 私は両方がより良いドキュメントでできることに同意します!私はしばらくの間これをするつもりでした。これを実現する最善の方法は、おそらく、それぞれのリポジトリで特定の質問をして問題を開き、説明をREADMEなど)に入れることを提案することです。そうすることで、問題点を確認できます。対処されます。
  6. ウィジェットのユーザーベースが大きいことを考えると、私はそれが安全だと思います。バスファクターはそれほど高くはありませんが、メンテナが減ると人はステップアップする傾向があります。
  7. はい。ただし、jupyterlabにウィジェットを使用することは、開発者とユーザーの両方にとって、依然としてわずかに高いメンテナンスです。
  8. 勉強したいと思うかもしれないのはCommshttp://jupyter-notebook.readthedocs.io/en/stable/comms.html )で、これはウィジェットが内部で使用するものです。その同期のため。ただし、これは低レベルなので、どちらが自分に最も適しているかを判断する必要があります。
6
Vidar

まず、JupyterLabはまだ安定しておらず、内部APIはまだかなり変更されていることを忘れないでください。あなたの欲求不満の最大の部分は、毎週変化しているプロジェクトに関する情報を見つけようとしていることです(参考のために2018年の初めに安定するはずです)。

とにかくドキュメントは1週間後に間違っているので、これはユーザーのためのドキュメントと例を書く最小限の労力につながります。したがって、あなたの混乱と活動の欠如は今のところ正常です。

Labが安定し、IPywidgetチームがすべての移植を開始すると、改善が見られるはずです。

3
Matt