Bash on Windows で jupyter + matplotlib 環境を作る

Bash on Windows 上にpython環境を作る」で、Bash on Windows上にPython環境ができたので、jupyter notebookが使えるように整えます。

jupyter notebookは、コードとドキュメント、結果をまとめて記述したり、残したり、公開したりできるメモ帳です。ブラウザで動きます。残してよかったってことあまりないですが、インタラクティブに結果を見て、コードを少しずつ作っていく場合に便利です。



(fx) [~] $ pip install jupyter


(fx) [~] $ jupyter notebook

Bash on Windowsで環境作っていてブラウザはセットアップしてないので、下記のようにブラウザが見つからないので、自分で立ち上げてURLをコピペしてねと言われます。

(fx) [~] $ jupyter notebook
[I 09:10:50.157 NotebookApp] Serving notebooks from local directory: /mnt/c/home
[I 09:10:50.157 NotebookApp] 0 active kernels
[I 09:10:50.157 NotebookApp] The Jupyter Notebook is running at:
[I 09:10:50.157 NotebookApp] http://localhost:8888/?token=bfab78cff228bec65335c8735094cd9c00365f79229eeee5
[I 09:10:50.157 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 09:10:50.168 NotebookApp] No web browser found: could not locate runnable browser.
[C 09:10:50.168 NotebookApp] 

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:

なので、http://localhost:8888へアクセスするとjupyter notebookが使えます。

jupyter screen shot


下記のコードでmatplotlibの結果をjupyter notebookへインライン表示します。

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import math
x = np.linspace(0, 2*math.pi, 1000)
y  = np.sin(x)
plt.plot(x, y)


(fx) [~/workspace/fx] $ pip install matplotlib


jupyter matplotlib


Bash on Windoews で X Window 環境作っているので、jupyter notebookではなく、普通のインタプリタでやってみました。

まさかのエラー。jupyter notebookでは表示されるのになぜか?

>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
  File "/usr/lib/python3.5/tkinter/", line 36, in <module>
    import _tkinter
ImportError: No module named '_tkinter'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/mnt/c/home/env/fx/lib/python3.5/site-packages/matplotlib/", line 115, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/mnt/c/home/env/fx/lib/python3.5/site-packages/matplotlib/backends/", line 32, in pylab_setup
  File "/mnt/c/home/env/fx/lib/python3.5/site-packages/matplotlib/backends/", line 6, in <module>
    from six.moves import tkinter as Tk
  File "/mnt/c/home/env/fx/lib/python3.5/site-packages/", line 92, in __get__
    result = self._resolve()
  File "/mnt/c/home/env/fx/lib/python3.5/site-packages/", line 115, in _resolve
    return _import_module(self.mod)
  File "/mnt/c/home/env/fx/lib/python3.5/site-packages/", line 82, in _import_module
  File "/usr/lib/python3.5/tkinter/", line 38, in <module>
    raise ImportError(str(msg) + ', please install the python3-tk package')
ImportError: No module named '_tkinter', please install the python3-tk package


$ sudo apt install python3-tk


command matplotlib