はじめに

Jupyter Notebookは、そのままでは、タイプしても候補が出ない(自動補完しない)為、エディターとしては使いにくい印象があります。
ここでは、Jupyter Notebookに自動補完(入力候補)機能を追加する為に、Anacondaを前提として、よく使われるnbextensionsをインストールする方法を説明します。

Anacondaの場合、「『pipは使うな』と書いてある、でも、『pipでインストールする記事しかない』」、ことが多く、未知のパッケージはインストールが怖い、というのが正直な所ではないでしょうか。

正確を期すため、英語のnbextenstionsの公式サイトを見ながら、実際にやってみました。
当該ページの日本語訳も、筆者が行いましたので、参考までに載せておきます。

【nbextenstions(英語)】
https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html

前提条件

    • Anacondaがインストールされている

 

    AnacondaからJupyter Notebookをインストールしている

尚、筆者の場合、バージョンはPython3.7.6 / Anaconda 4.10.1 / jupyter-notebook 6.3.0 で、Windows10です。

バージョンはアナコンダ・プロンプトで それぞれ
python –version、conda -V、jupyter-notebook –version
とタイプして確認できます。

内容

    • 1. Anacondaは原則condaを使う。pipは可能な限り使わない。

2. nbextensionsのインストール方法

2.1 conda-forgeから jupyter_contrib_nbextensions をインストール

2.2 Javascriptとcssのインストール

2.3 nbextensionsの有効化

3. nbextensionsの公式ページの抄訳

4. 参考ページ

5. 変更履歴

1. Anacondaは原則condaを使う。pipは可能な限り使わない。

パッケージをインストールする場合、よく見るコマンドが pip install です。しかし、よく言われるように、Anaconda環境では、可能な限りpip installは避けるべきです。

詳しくは、以下のリンクを参照してください。(※Python公式サイトではありません)

https://www.python.jp/install/anaconda/pip_and_conda.html
ですから、Anaconda環境では、pip ではなく、conda コマンドを使うようにしてください。

【注意: リンク先運営者のコメント】

Pythonの公式サイトではなく、Pythonを開発する Python Software Foundation とも無関係です。
(中略)
当サイトは、もともと Pythonドキュメント翻訳プロジェクト が翻訳した日本語版Pythonドキュメントを公開するために運用していましたが、翻訳ドキュメントが python.org 本家で公開されることになり、現在は公開しておりません。

2. nbextensionsのインストール方法

この先、Anaconda環境(つまり、コマンドはcondaでインストールする。pipは使わない。)点に注意してください。

2.1 conda-forgeからjupyter_contrib_nbextensionsをインストール

Anaconda Prompt(アナコンダ・プロンプト)で以下を入力し、Enter。

conda install -c conda-forge jupyter_contrib_nbextensions

最後に[y/n]ときいてくるので、yを入力しEnter。完了すると、doneと表示される。
(”conda-forge”は、condaのdefaultsにはない、パッケージが集積されたコミュニティです。)


注意:
DOSのコマンドプロンプトではありません。Anacondaをインストールすると、DOSと似たようなアイコンのAnaconda Promptがインストールされます。Anaconda Promptを起動すると、(base)と各行のはじめに表示されるはずです。(base)と出ていなければ、DOSを開けているのではないでしょうか?


jupyter-nbextensions-configuratorのインストールは必要か?
自分でインストールする必要ありません。これは、後で日本語訳の中にあるように、jupyter-contrib-nbextensionsをインストールすれば、自動でインストールされます。仮に、インストールをconda installで試みても、「既にインストール済み」と返してくるだけです。

2.2 Javascriptとcssのインストール

同じく、Anaconda Prompt(アナコンダ・プロンプト)で以下を入力し、Enter。

jupyter contrib nbextension install --user

2.3 nbextensionsの有効化

Jupyter Notebookを起動すると、新しくNbextensionsというタブが表れます。

Jupyter_Nbextensions_tab3b.PNG

左上のチェックボックスのチェックを外します。
(全てのチェックボックスがグレーアウトされているのは、これは、今の時点では、全てが無効になっているからです。)

尚、チェックボックスの英語は、以下のように言っています。


英語:disable configuration for nbextensions without explicit compatibility (they may break your notebook environment, but can be useful to show for nbextension development)

邦訳:明確な互換性のないnbexntensionsの(各機能の)設定を無効にする。(notebookの環境を破壊するかもしれないが、nbextensionの効果を示すには有効である。)

筆者の解釈:
海外サイトも調べましたが、免責と思われます。「nbextensionsの機能を同時に使う(複数チェックする)と、機能がうまく動かないかもれないし、それはnotebookの環境をおかしくするかもしれない。けれど、nbextensionsの便利な機能を利用できる。」ということだと思います。
しかし、チェックを外さない限り、機能を利用できません。よくあるパターンですよね。


Jupyter_Nbextensions_tab3.PNG
Jupyter_Nbextensions_note_after_installation2.PNG

3. nbextensionsの公式ページの抄訳

以下、英語のnbextensionsの公式ページの参考日本語訳です。一部省略しています。[*]マークのある項目は全て以下のnbextensionsのサイトの日本語訳です。

注意:公益性が高いと判断し、筆者が勝手に翻訳したもので、公式なものではありません。自動翻訳も一切使用していません。

[*] jupyter_contrib_nbextensionsをインストールする

jupyter_contrib_nbextensionsをインストールするには、3つのステップが必要です。まず、Python pipパッケージのインストールが必要です。次に、notebook extensionsをJupyterのデータ・ディレクトリにコピーします。最後に、notebook extensionsを有効にします。有効化は、Jupyterのコマンドを使うか、より便利な方法としてjupyter_nbextensions_configuratorを使う方法があります。

[*] 1. pyhonパッケージをインストールする

PIP

nbextensionsはpyhonパッケージとして提供されます。インストールは、pipまたはsetup.pyスクリプトを実行する、通常の方法で行います。PyPiからインストールする場合は、シンプルに

pip install jupyter_contrib_nbextensions

とタイプします。あるいは、マスターブランチから直接インストールすることもできます。

pip install https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tarball/master

インストールには、–upgrade flagや -eなどのpipの通常のオプションが指定可能です。

Conda

“notebook extensions”と”jupyter_nbextensions_configurator”のcondaパッケージは、conda-forgeから利用可能です。以下で、両方をインストールできます※2。

conda install -c conda-forge jupyter_contrib_nbextensions

これを実行すると、JavascriptとCSSファイルが自動でインストールされるので(jupyter contrib nbextension install –sys-prefixを使います)、以下のインストール手順の第2ステップは省略できます。

※2 : (筆者追記) “jupyter_contrib_nbextensions”をすれば、”jupyter_nbextensions_configurator”が自動でインストールされるので、後者を自らインストールする必要はありません。

[*]リポジトリをCloneしてインストール

リポジトリからcloneしてインストールすることも可能で、開発には有効な方法です。以下でcloneする事が可能で、

git clone https://github.com/ipython-contrib/jupyter_contrib_nbextensions.git

次に、pipを実行します。

pip install -e jupyter_contrib_nbextensions

[*] 2. javascriptとcssファイルをインストールする

このステップで、nbextensionsのjavascriptとcssファイルをjupyterのディレクトリにコピーし、jupyterのconfigファイルを編集します。なお、jupyterのサブコマンドが用意されています。

jupyter contrib nbextension install --user

コマンドは次の2つを実行します。nbextensionファイルをインストールし、nbconvertのconfigファイルを編集します。最初の部分は、本質的にはnotebookが提供するjupyter nbextension installのラッパーであり、関連するjavascriptとcssファイルを適切なjupyterのディレクトリにコピーします。2番目の部分は、configファイルである、jupyter_nbconvert_config.jsonと jupyter_notebook_config.jsonを以下に述べるオプションで編集します。コマンドの大部分は、jupyterが提供するものと全く同じコマンドです。オプションには以下を含みます。

–user ユーザーのjupyterのホームディレクトリにインストールします。

(他のオプションは省略)

uninstallコマンドも用意され、全てのnbextensionのファイルをjupyterのディレクトリから削除します。

[*] 3. 機能の有効化、無効化

nbextensionを使う為には、更に、機能を有効化する必要があります。これは、notebookインターフェースがロードできるようにするということです。その為に、Jupyterのサブコマンドが使用可能です。

jupyter nbextension enable <nbextension require path>

例えば、

jupyter nbextension enable codefolding/main

無効化するには、以下を使います。

jupyter nbextension disable <nbextension require path>

他の方法として、そしてより便利な方法として、”jupyter_nbextensions_configurator”を使う事ができます。これは、このリポジトリ(筆者追記:jupyter_contrib_nbextensionsのこと)に付属してインストールされます。これにより、(筆者追記:コマンドで)オプションで設定するのと同じように、個々のnbextensionsの機能を有効化、無効化できます。nbextensionsタブがnotebookのページに表示され、そこからチェックボックスにより有効化、無効化が可能となります。さらに、それぞれの機能についての短い説明が表示され、設定のオプションも表示されます。

[*] 4. 更に複雑なセットアップ

殆どのnbextensionsの機能はjupyterhubで動くはずです。しかし、jupyterlabでは動きません。複雑あるはカスタマイズされたインストールをする場合は、Jupyter homepageにあるドキュメントを参照してください。

installing Jupyter もご参照ください。

4. 参考ページ

    • 実践で使うPythonの技術が掲載されている弊社のページです。書籍のように構成されています。

 

    • https://shilabo.com/python/web_self/

 

    • pipとcondaの関係:

 

    • https://www.python.jp/install/anaconda/pip_and_conda.html

 

    • nbextensionsのインストール :

 

    • https://www.soudegesu.com/post/python/jupyter-autocomplete/

 

    • https://qiita.com/simonritchie/items/d7dccb798f0b9c8b1ec5

 

    https://qiita.com/SaitoTsutomu/items/1326e05eb992a8aa849d

5. 変更履歴

    2021/10/14 : 設定後のJupyter Notobookの図を分かりやすいものに変更。
广告
将在 10 秒后关闭
bannerAds