事の発端
Jupyter notebookを2年前にインストールして使っていたが、環境が構築されておらず、デフォルトのまま使っていた。プログラミングにも慣れてきた事なので、さすがにデフォルト環境では使いづらくなり、とりあえずテーマから変えようと思った。
pip install jupyterthemes
したらば、カーネルが接続中のままいつまでたっても動き出さない。
そして…
Connection failed
A connection to the notebook server could not be established.
The notebook will continue trying to reconnect.
Check your network connection or notebook server configuration.
これ以降うんともすんとも…
1+1のような単純計算すらもしてくれなくなってしまいました。
一回Jupyterを再インストールしてみるも効果なし…
kernelの位置を動かしても効果なし…
マジで詰みました。
#エラーの分析
エラー解析をしているうちに得た知識は、「エラーがどこで発生しているか読む事」
今までは状況だけググって何がいけないか見てなかったですね。反省。
ターミナルに戻ってエラーの様子を見て見ました。
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ipykernel_launcher.py", line 16, in <module>
app.launch_new_instance()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/traitlets/config/application.py", line 658, in launch_instance
app.start()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ipykernel/kernelapp.py", line 477, in start
ioloop.IOLoop.instance().start()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tornado/platform/asyncio.py", line 132, in start
self.asyncio_loop.run_forever()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/base_events.py", line 408, in run_forever
raise RuntimeError('This event loop is already running')
RuntimeError: This event loop is already running
ERROR:tornado.general:Uncaught exception in ZMQStream callback
これ以降同じような事の繰り返しになっていました。
ここでエラー吐いているのはtornadoのところですね。
ここのエラーメッセージでググって見ました。
すると…
Jupyter notebookにRを追加したらPythonが動かなくなった時の対処の方法
このページが表示。私とは状況が違うので今までの状況での検索には引っかからなかったみたいです。
このページの説明をみると、ipykernelをアップデートすれば良いとのこと。
なお、私はpipで環境を構築しているのでcondaではなくpipを用いて見ました。
pip install --upgrade ipykernel
すると、今までのエラーが嘘のように動いたのです!!よかった〜
#今回得られた知識
エラーを吐いた時は、状況だけではなく、エラーコードを見つけて検索をかけること
プログラマーにとっては基本中の基本かもしれませんが、初学者の私にとっては新たな気づきでした。また一つ賢くなった。
私と同じ現象で悩んでいる人がいる可能性もあるので残しておきます。私の方法でも解決しなかった方は、上のようにエラー部分を見つけることが大切になると思います。初歩的なことしか書いてなくてごめんなさい。