Python > Jupyter Notebookを使う
広告
$ python3 Python 3.6.8 (default, Jan 14 2019, 11:02:34)Anacondaかpipを使ってインストールできるらしいので、pipを使います。公式ウェブサイト的には、Anaconda推奨のようです。 まず、pipをアップグレードします。
$ python3 -m pip install --upgrade pipで、Jupyter Nootbookをインストールします。
$ python3 -m pip install jupyterすると、エラーが発生。
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/dist-packages/widgetsnbextension-3.5.1.dist-info' Consider using the `--user` option or check the permissions.オプションを指定すれば、ユーザ権限でインストールしてくれます。
$ python3 -m pip install jupyter --user : : WARNING: The script jupyter-console is installed in '/home/ubuntu/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.WARNINGが出ました。 /home/ubuntu/.local/binをPATHに追加したほうがよさそうです。 なので、~/.bashrcの最後に以下を追加します。
export PATH=$PATH:/home/ubuntu/.local/binこれでOKです。 ログインしなおせば、Jupyter Notebookにパスが通っているはずです。
$ jupyter notebook [I 11:37:25.381 NotebookApp] Serving notebooks from local directory: [I 11:37:25.381 NotebookApp] The Jupyter Notebook is running at: [I 11:37:25.381 NotebookApp] http://localhost:8888/?token=d5a8578a5a6b291effe84244b877df89b098aa7685b6223b [I 11:37:25.381 NotebookApp] or http://127.0.0.1:8888/?token=d5a8578a5a6b291effe84244b877df89b098aa7685b6223b [I 11:37:25.381 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 11:37:25.388 NotebookApp] No web browser found: could not locate runnable browser. [C 11:37:25.388 NotebookApp] Or copy and paste one of these URLs: http://localhost:8888/?token=d5a8578a5a6b291effe84244b877df89b098aa7685b6223b or http://127.0.0.1:8888/?token=d5a8578a5a6b291effe84244b877df89b098aa7685b6223b起動しました。 ただ、この状態だと、ローカルホストからしかアクセスできません。 外部ホストのウェブブラウザからアクセスするためには、設定を変更する必要があります。 そして、設定を変更するためには、まず、現在の設定をファイルに書き出す必要があります。
$ jupyter notebook --generate-config Writing default config to: /home/ubuntu/.jupyter/jupyter_notebook_config.pyこれで設定ファイル jupyter_notebook_config.py が生成されます。 次に、設定ファイルを以下のように設定します。
#c.NotebookApp.open_browser = True #ブラウザの自動起動 c.NotebookApp.open_browser = False #c.NotebookApp.ip = 'localhost' #外部サーバからアクセス c.NotebookApp.ip = '0.0.0.0' #c.NotebookApp.password = '' #アクセス時のパスワード c.NotebookApp.password = 'sha1:96ff293324fa:7846743e8f99240b17b02dd35e35597db75a5202'パスワードの設定値(sha1から始まるランダムな16進数)は、以下のように、pythonで、"from notebook.auth import passwd; passwd()"を実行すればよいです。
$ python3 Python 3.6.8 (default, Jan 14 2019, 11:02:34) [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from notebook.auth import passwd; passwd() Enter password: Verify password: 'sha1:96ff293324fa:7846743e8f99240b17b02dd35e35597db75a5202'
上記の、"Enter password"と"Verify password"のところで、同じパスワードを入力しましょう。 すると、最後の行が表示されるので、それをそのままc.NotebookApp.passwordにコピペすればよいです。
これでjupyter notebookを再起動すれば、別マシンからアクセスできます。 ウェブブラウザでポート8888にアクセスすれば、パスワードを要求されます。
設定したパスワードを入力すれば、ようやくホーム画面です。 右上の、"New"というボタンをクリックsて、Notebookの'Python 3'を選択すると、タブが開いて、notebookが作成されます。 左上の "Untitled" をクリックすると、notebookの名前を設定できます。 デフォルトでは、このnotebookは、Jupyter Notebookをインストールしたユーザのホームディレクトリに保存されます。
ブラウザのNotebookの "In []" と表示されているところが「Cell(セル)」です。 このセルにプログラムを書いて、Shift + Enter を押すと実行できます。
cellは、code cells, markdown cells, and raw cellsの3つの種類があります。 code cellは、一番イメージしやすいです。 pythonコードを書いて、実行すれば、コードの結果が表示されます。 matplotlibでグラフを表示することも可能です。 markdown cellは、マークダウンを書くためのcellです。 マークダウンの書式で色々と書いて、実行すれば、マークダウン形式で描画されます。
cellにてEmacsのキーバインディングを使うには、以下のプラグインをインストールすればよいです。
$ pip install jupyter-emacskeys --userこれで、jupyterを再起動すれば、Emacs風にエディットできる。 ただし、Ctrl+nだけはだめ。ブラウザの新規ウィンドウが立ち上がってしまいます。