特にハマりどころもないですが一応。
インストール後すぐ起動しようとしてもエラーになる
OS: Sierra 10.12.4
AnacondaとJupyterのパスとバージョン
~❯❯❯whichanaconda/Users/User/anaconda/bin/anaconda~❯❯❯anaconda--versionanacondaCommandlineclient(version1.6.0)~❯❯❯whichjupyter/Users/User/anaconda/bin/jupyter~❯❯❯jupyter--version4.2.1
anaconda インストール後、 jupyter notebook
と打ったら、
~❯❯❯jupyternotebook[W17:31:38.060NotebookApp]server_extensionsisdeprecated,usenbserver_extensions[I17:31:38.898NotebookApp][nb_conda_kernels]enabled,3kernelsfound[I17:31:38.916NotebookApp]WritingnotebookservercookiesecrettoUsers/User/Library/Jupyter/runtime/notebook_cookie_secretTraceback(mostrecentcalllast)......PermissionError:[Errno13]Permissiondenied:'Users/User/Library/Jupyter/
~❯❯❯ls-l~/Library...drwx------+2Userstaff68Mar302016InternetPlug-Insdrwx------5rootstaff170Apr817:15Jupyterdrwxr-xr-x3Userstaff102Mar2917:17Keyboard...
Jupyter配下のものを全て rootからUserに権限を移してあげる必要あり。
~❯❯❯sudochown-RUser~/Library/Jupyter
権限を変えずにsudo jupyter notebook --allow-root
でも起動できるが、根本的な解決にならないし、セキュリティ上の理由などから推奨されていない。
~❯❯❯jupyternotebook
Jupyterを止めて(Ctrl + C
を2回)、今度は設定。
ブラウザとパスワードの設定
- デフォルトのブラウザ
まずjupyter
コマンドで設定ファイルを生成してあげて
~❯❯❯jupyternotebook--generate-configWritingdefaultconfigto:/Users/User/.jupyter/jupyter_notebook_config.py~❯❯❯vim/Users/User/.jupyter/jupyter_notebook_config.py
設定ファイルの中でデフォルトのブラウザをChromeに設定。
c.NotebookApp.browser='chrome'
設定したいブラウザ名がわからない場合、pythonやipythonですぐ確認できる。
~❯❯❯ipythonIn[1]:importwebbrowserIn[2]:webbrowser._browsersOut[2]:{'chrome':[None,<webbrowser.MacOSXOSAScriptat0x105545208>],'firefox':[None,<webbrowser.MacOSXOSAScriptat0x1055452e8>],'macosx':[None,<webbrowser.MacOSXOSAScriptat0x105545358>],'open':[None,<webbrowser.GenericBrowserat0x1055453c8>],'safari':[None,<webbrowser.MacOSXOSAScriptat0x10552c908>]}
- パスワードの設定
jupyter5.0からは、jupyter notebook password
と叩けば設定できるが、今回はバージョンが違うので、こう。
~❯❯❯python-c'from notebook.auth import passwd;print(passwd())'Enterpassword:Verifypassword:sha1:123456789012:1234567890abcdef1234567890abcdef12345678
出力されたハッシュ(sha1...678
の文字列)を先ほどの設定ファイルに追記する。
c.NotebookApp.password=`sha1:123456789012:1234567890abcdef1234567890abcdef12345678`
python
やipython
などのREPLから from notebook.auth import passwd
... みたいな感じで設定することもできるが、passwd(<ここ>)
ここにパスワードを直接入れなければならず、コマンドの履歴が残ってしまうため、よろしくない。
拡張機能の追加
より便利に使うために、Jupyter notebook extensionsを入れて拡張機能を設定できるようにする。Anacondaが入っているので、以下のコマンドで拡張機能たちがワラっと入り、かつそれらに必要なJSやCSSも一緒に入る。
~❯❯❯condainstall-cconda-forgejupyter_contrib_nbextensions
Jupyter notebook extensionsの中にもデフォルトでVim用のKeymapの拡張機能が用意されているが、ノーマルモードで直接セル間の移動ができなかったりして(もう一段階エスケープしないといけない)、個人的には操作しづらいので、代わりにこれを利用する。
先程入れた拡張機能は~/anaconda/share/jupyter/nbextensions/
配下などに入っているはずなので、jupyter-vim-bindingもそこに追加する。
もし拡張機能たちがどこに入ったのかわからなければ、
~❯❯❯find~/anaconda-namenbextensions
Anacondaで仮想環境を作って、その中にJupyterを入れているなら、Users/User/anaconda/envs/env/share/jupyter/nbextensions
みたいなフォルダがあるかもしれない。
jupyter-vim-bindingをクローンしてきて、有効にする。
~❯❯❯cd~/anaconda/share/jupyter/nbextensions&&gitclonehttps://github.com/lambdalisue/jupyter-vim-bindingvim_binding
~❯❯❯jupyternbextensionenablevim_binding/vim_binding
拡張機能の設定
jupyter notebook
で起動して、ブラウザで Nbextensions のタブをクリックするか、localhost:8888/nbextensions
(ポートは自分の環境のものを。デフォルトは8888のはず。)へ行って、どんな拡張機能があって、何が便利そうか観ながらチェックボックスをポチポチする。
vim_bindingについては、上のほうのdisable configuration for nbextensions without explicit compatibility...
のチェックボックスを外し、VIM binding
をチェックする。
もしかしたら、vim binding と VIM binding の両方がチェックボックスの項目として表示されてしまっているかもしれないが、VIM binding
のほうが正しい。名前が紛らわしかったり、どちらが目的の機能かわからないときは、各拡張機能はみんなその配下にyamlファイルを持っているので、そこのName
を見ればよい。
cat~/anaconda/share/jupyter/nbextensions/vim_binding/vim_binding.yml
参考
Running a notebook server
http://jupyter-notebook.readthedocs.io/en/latest/public_server.html
Jupyter notebook extensions
https://github.com/ipython-contrib/jupyter_contrib_nbextensions
jupyter-vim-binding
https://github.com/lambdalisue/jupyter-vim-binding/issues