IPython-notebook-extensions(< 0.2.0)から0.2以降へのアップデートメモ
Table of Contents¶
IPython-notebook-extensions(< 0.2.0)から0.2以降へのアップデートメモ¶
old版(IPython-notebook-extensions < 0.2.0)から0.2以降にアップデートした際,コンフリクトを起こしたので, 対処メモ.なお,試行錯誤したメモであり一時的な解決なので,再インストールしたほうが速いかも.
環境¶
- Widnows 10 64bit
- jupyter(< 4.2)
での話です.
旧バージョンをアンインストール¶
インストール済みのextensionの確認¶
まず,インストール済みのextensionを確認. jupyterのサブコマンドとして,jupyter nbextension
が使える. jupyter nbextension list
でインストール済みのextensionを確認できる. 例えば以下のように表示される.
> jupyter nbextension list
Known nbextensions:
config dir: C:\Users\usrname\.jupyter\nbconfig
notebook section
usability/hide_input_all/main disabled
usability/toc2/main disabled
usability/runtools/main disabled
usability/collapsible_headings/main disabled
usability/codefolding/main disabled
usability/help_panel/help_panel disabled
config/config_menu/main disabled
publishing/gist_it/main disabled
usability/dragdrop/main disabled
usability/autosavetime/main disabled
publishing/printview/main disabled
usability/hide_input/main disabled
usability/equation-numbering/main disabled
usability/python-markdown/main disabled
old(<0.2)版でインストールした場合の特徴としては,
usability/(extension_name)/main
と3つに区切られて表示される.
それに対して,0.2以降では
(extension_name)/main
と短縮されたので,これで見分けることができる.
extensionの無効化¶
unistall する前に有効になっているextensionを無効化しておく. 有効になっているextensionはenbaled
と表示される.
usability/python-markdown/main enabled
jupyter nbextension
のサブコマンド中のjupyter nbextension disable
コマンドで無効にできる. 例えば,以下のコマンドでpython-markdown
extensionを無効にできる.
> jupyter nbextension disable usability/python-markdown/main
extensionのアンインストール¶
jupyter nbextension uninstall
でextensionをアンインストールできる. しかし,自環境はjupyter(< 4.2)でしたが,動きませんでした. jupyter(< 4.2)の場合,nbextensionコマンドは壊れているのかもしれません.
configの削除¶
`jupyter nbextension list' コマンドで表示される nbconfigファイルを削除する.
config dir: C:\Users\usrname\.jupyter\nbconfig
以前,
pip install https://github.com/ipython-contrib/IPython-notebook-extensions/archive/master.zip --user
でインストールしていたので,
pip uninstall IPython-notebook-extensions
でリポジトリをアンインストールする.
localhost:8888/nbextensions
にアクセスしたときに, extensionのyamlファイルが複製されextensionが複数表示される (旧extensionは旧パスで表示される)ということがあった.ほかにも確認されている. https://github.com/ipython-contrib/jupyter_contrib_nbextensions/issues/529
どうやら,1度インストールした旧extensionをどこかに保存していて, 新たにインストールし直しても,旧extensionももう1度コピーしてくるような動作をするよう.
対処としては, extensionが入っているファルダを検索して nbextensions/フォルダごと削除する.
また,隠しフォルダにも保存されている場合があるので, 以下のコードで認識されているnbextensionのフォルダ(nbextension_dir) とその中のyamlを抽出してくれるので,それらを削除する.
import os.path from itertools import chain from jupyter_core.paths import jupyter_data_dir from notebook.nbextensions import _get_nbextension_dir as get_nbext_dir nbextension_dirs = (get_nbext_dir(), os.path.join(jupyter_data_dir(), 'nbextensions')) yaml_files = [] for root, dirs, files in chain.from_iterable(os.walk(nb_ext_dir, followlinks=True) for nb_ext_dir in nbextension_dirs): for filename in files: if filename.endswith('.yaml'): yaml_files.append(os.path.join(root, filename)) for yaml_path in sorted(yaml_files): print(yaml_path)
自環境の場合は,AppData
の中にもextensionファイルが作られていた(どのタイミングか不明).これも削除しておく.
C:\Users\user_name\AppData\Roaming\jupyter\nbextension
jupyter_contrib_nbextensions(>=0.2)のインストール¶
condaがある場合
conda install -c conda-forge jupyter_contrib_nbextensions
でインストールできる.
jupyter nbextension list
で確認すると,
> jupyter nbextension list
config dir: C:\Miniconda3\etc\jupyter\nbconfig
notebook section
contrib_nbextensions_help_item/main enabled
- Validating: ok
nbextensions_configurator/config_menu/main enabled
- Validating: problems found:
- require? X nbextensions_configurator/config_menu/main
tree section
nbextensions_configurator/tree_tab/main enabled
- Validating: problems found:
- require? X nbextensions_configurator/tree_tab/main
新しくインストールされていることがわかる.
しかし,nbextensions_configurator/config_menu/main
と nbextensions_configurator/tree_tab/main
が正しくインストールされていないことを確認. この部分はまだ未解決
インストールすると,サブコマンドとして jupyter contrib nbextension
が使えるようになる.
extensionは,ローカルにあったほうがいいので, 以下のように全extensionをインストールする.
jupyter contrib nbextension install --user
この状態で,jupyter nbextension list
しても追加した拡張機能は見れないので, 1度localhost:8888/nbextensions
へアクセスする. 複製されなければとりあえず成功.
1度有効にした拡張機能は,jupyter nbextension list
に表示されるようになる.
アンインストール¶
conda uninstall jupyter_contrib_core
でjupyter_contrib_nbextensions
でインストールしたパッケージをすべてアンインストールできる.
もろもろ済んだら,jupyterは4.2以降にアップデートしておいたほうがいいです.