LoginSignup
10
12

More than 1 year has passed since last update.

AnacondaでJupyter Notebookにnbextensionsをインストールする

Last updated at Posted at 2021-10-13

はじめに

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 --versionconda -Vjupyter-notebook --version
とタイプして確認できます。

内容

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の便利な機能を利用できる。」ということだと思います。
しかし、チェックを外さない限り、機能を利用できません。よくあるパターンですよね。


左上の"dsiable..."のチェックを外したら、Hinterlandにチェックを入れます。
Jupyter_Nbextensions_tab3.PNG

これで、新しいnotebookを作成すれば、候補が出るようになります。
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.jsonjupyter_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. 参考ページ

5. 変更履歴

  • 2021/10/14 : 設定後のJupyter Notobookの図を分かりやすいものに変更。
10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12