linuxBean14.04(70)Jupyter NotebookをPyCharm4.5で使う

2015-09-22

旧ブログ

t f B! P L

前の関連記事:linuxBean14.04(69)MySQL5.6にPython3.3から接続する


IPythonは今後はJupyterのサブシステムとして動作するということなのでJupyterをインストールしました。ブラウザでのJupyter Notebookの動作は問題ありませんでしたが、PyCharm4.5との統合機能はIPython4.0.0ではうまくいかずIPythonを3.2.1にダウングレードしました。

(2015.9.23追記。なにかと使いにくいのでPyCharm4.5はファイル管理とPythonパッケージのインストールだけに使って、IPython3.2.1にダウングレードしてPyCharm4.5からIPython Notebookを使うことはやめました。)

(2015.9.25追記。Jupyter NotebookのインストールだけでなくNumpyやmatplotlibなどもインストールもされるので、Anacondaでインストールしたほうが圧倒的に楽です。linuxBean14.04(72)Anacondaで科学技術系Pythonパッケージを一括インストールする参照。)

Jupyterのインストール


matplotlibでPython3.3でグラフを描画しようとしたのですが使い方が結構難しいです。

IPythonを使えば対話的にmatplotlibの機能が試せることがわかりました。

さらにPyCharm4.5ではIPython Notebookが統合的に使えることがわかりました。

IPythonはシェルでそれをブラウザでGUI風に使えるようにしたのがIPython Notebookになります。

IPythonは4.x以降はJupyterサブシステムになるとのことでJupyterをインストールします。

Installation — Jupyter Documentation 4.0.0.dev documentation

Pythonがすでにインストールしてあるか、IPyhonがすでにインストールしてあるか、などによってインストール方法が場合分けしてあります。

私の場合はPythonはインストール済で、IPythonは未インストールで、Anacondaは使っていないので、普通にpip install jupyterするだけで済むようなので、PyCharm4.5のSettingsからインストールします。


/usr/bin/python3.4に対してjupyter 1.0.0をインストールしただけなのですが、付随してipython4.0.0をはじめたくさんのパッケージが一緒にインストールされました。

IPython3.2ではNotebookを使うにはpyzmq, Jinja2, tornado, mistune, jsonschema, Pygments, terminadoのPythonパッケージを自分でインストールする必要がありましたが、Jupyterをインストールするとこれらはインストールされていました。(Quickstart — IPython 3.2.0 documentation

matplotlibとnumpyのインストール


これら2つのPythonパッケージはIPythonの動作に必要なものではありませんが動作確認の例で使うのでインストールします。

jupyterに加えてこの2つのパッケージを/usr/bin/python3.4に対してインストールしました。

matplotlib プロッティング(グラフ描画)パッケージmatplotlib。1.4.3をインストール。

numpy 行列などの数値計算ライブラリNumPy。1.9.3をインストール。

matplotlibは50MBもあってインストールにかなり時間がかかります。

ブラウザでJupyter Notebookを使う


Using IPython Notebook with PyCharm - PyCharm - ConfluenceにPyCharmで使うためのチュートリアルがあります。

インストールが必要と書いてあるPythonパッケージはJupyterのインストール時にインストールされていますので追加インストールは不要でした。


インストールが完了したらインタープリターを/usr/bin/python3.4に指定したJupyterというプロジェクトを作成します。

プロジェクトを右クリック→New→File。


MatplotlibExample.ipynbという名前のファイルを作成します。

拡張子ipynbは必須です。


ちゃんとチュートリアルと同じ画面がでてきました。


まずmatplotlibの設定のために%matplotlib inlineとセルに入力してRun Cellボタンをクリックします。


「OK」。


The IPython Notebook is running at: http://127.0.0.1:8888/ とでて、ちゃんと動いています。

ブラウザを立ち上げてhttp://127.0.0.1:8888/にアクセスします。


MatplotlibExample.ipynbをクリックします。

ノートブックの形式がバージョン3からバージョン4に変換された、とダイアログがでてきます。


PyCharm4.5で入力したコマンドがセルに反映されています。

しかしセルの左側にあるIn [ ] の角括弧内が空白のときはそのセルのコマンドが実行されていないことを示します。

次のセルにUsing IPython Notebook with PyCharm - PyCharm - Confluenceの例のコードで以下を入力します。

from pylab import *
x = linspace(0, 5, 10)
y = x ** 2
figure()
plot(x, y, 'r')
xlabel('x')
ylabel('y')
title('title')
show()

%matplotlib inlineの入っているセルを選択した状態でrun cell, select belowボタンをクリックします。

2番目のセルから開始しても1番目のセルのコマンドが実行されていないためエラーがでてグラフは描画されませんでした。

2番目のセルでrun cell, select belowボタンをクリックしたあとにグラフが描画されます。

セルの前のIn[ ]の角括弧の中には実行した順番の数値が入っています。

Jupyter Notebookを起動するランチャーを作る


2015.9.23追記

IPython3.2.1にダウングレードしてPyCham4.5からIPython Notebookを使うことは断念したので、Jupyter Notebookを簡単に起動できるようにランチャーを作成します。

~/.local/share/applicationsで右クリック、新規作成→Shortcut。


Jupyter.desktopというファイル名にしました。


コマンドに jupyter notebook、ディレクトリの編集ではPyCharm4.5で作ったプロジェクトフォルダを選択しました。

Jupyter NotebookのアイコンはProject Jupyter | Homeの画像をアイコンにしました。

このランチャーをダブルクリックするとデフォルトのブラウザが起動し、ランチャーで設定したディレクトリでJupyter Notebookが起動しました。

豆ボタン→アクセサリ→メニューエディタ。

linuxBean14.04(46)Eclipse Modeling Toolsのインストールと同様にしてJupyter NotebookのランチャをDevelopmentに分類しました。


しかしメニューに登録すると起動時にディレクトリがホームディレクトリになってしまいます。(LibreOffice(61)linuxBeanでJavaの例をmakeで悩まされたのと同じ問題です。)

解決方法がわからなかったのでデスクトップにランチャーをコピーして使うことにしました。

Change IPython working directory - Stack Overflowで解法がわかりました。

ランチャーのコマンドに--notebook-dir=<StartupFolder>をつければできました。

jupyter notebook --notebook-dir=/home/pq/PycharmProjects/Jupyter


コマンドでスタートアップフォルダを指定したのでディレクトリの編集は空欄にしました。

スタートアップより上のフォルダはみえません。(3. Running the Jupyter Notebook — Jupyter/IPython Notebook Quick Start Guide 0.1 documentation

PyCharm4.5と統合されたJupyter NotebookではIPython4.0.0は動かず


2015.10.1追記linuxBean14.04(72)Anacondaで科学技術系Pythonパッケージを一括インストールするのPython3.4のJupyter Notebook(のIPython4.0.0)とPyCharm4.5.2の組み合わせではPyCharm4.5と統合されてIPython4.0.0が動きました。しかしPyCharm4.5.4にアップグレードすると下記のように動かなくなりました。)

PyCharm4.5の画面に戻ってみると上記を実行した結果が反映されています。


ところがPyCharm4.5のセルにコマンドを打ち込んでRunしてもセルの前のIn[ ]に数値が入らず結果も反映されません。


[W 22:27:20.121 NotebookApp] 404 GET /api (127.0.0.1) 194.87ms referer=None

ウィンドウ下部にでているログをみるとRunボタンをクリックするたびに404のエラーがでてきます。

PyCharm4.5(おそらくPyCharm4.5.3以降)ではサーバからの結果を入手できないようです。

PyCharm 4.5.3 can't interpret Ipython Notebook V4 : PY-16624

すでにバグ報告されていました。

PyCharm4.5からJupyter Notebookを使うためにIPythonを3.2.1にダウングレードする


(2015.9.23追記。IPython3.2.1にダウングレードはやめました。理由は次の節に書いています。)

待っていればPyCharm4.5からIPython4.0.0も使えるようになるとは思いますが待っていられないのでIPythonを4.0.0から3.2.1にダウングレードすることにしました。

念のためPyCham4.5は終了しておきます。

Index of /release/3.2.1からipython-3.2.1-py3-none-any.whlをダウンロードしました。

pipはlinuxBean14.04(43)動かないpipを再インストールで設定済です。

sudo -H pip3.4 install ipython-3.2.1-py3-none-any.whl

whlファイルをダウンロードしたフォルダでTerminalを開いてこのコマンドを実行すればPython3.4へインストール完了です。
pq@pq-VirtualBox:~/ダウンロード$ sudo -H pip3.4 install ipython-3.2.1-py3-none-any.whl
[sudo] password for pq: 
You are using pip version 7.1.0, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Processing ./ipython-3.2.1-py3-none-any.whl
Installing collected packages: ipython
  Found existing installation: ipython 4.0.0
    Uninstalling ipython-4.0.0:
      Successfully uninstalled ipython-4.0.0
Successfully installed ipython-3.2.1
IPython4.0.0は自動的にアンインストールされました。

PyCharm4.5を起動してMatplotlibExample.ipynbの最初のセルを選択してRunボタンをクリックしていくとPyCharm4.5の画面の中でグラフが表示されました。

IPythonをダウングレードしてまでPyCharm4.5からJupyter Notebookを使えるようにしましたが、そこまでしたメリットはいまのころPyCharm4.5のファイル管理機能が使えることと、PyCharmのコード補完機能が使えることぐらいしか発見できていません。

PyCharmの補完機能が使えます。

入力したらRun Cellボタンをクリックします。

[W 08:37:59.876 NotebookApp] No session ID specified

このエラーがでても支障はないようです。

マウスの右クリックボタンを押してもコピペできないのが不便ですね。

ショートカットキーでコピペはできます。

?plt.polt としてもヘルプがでてきません。

結局IPythonを4.0.0に戻してPyCharm4.5からはIPython Notebookは使わないことにした


2015.9.23追記

linuxBean14.04(71)IPython3.2.1のNotebookを使うでipython_config.pyの設定してPyCharm4.5でIPython3.21のNotebookを使っていましたが、だんだんとPyCharm4.5からIPython Notebookを使う気が失せてきました。

セルにコードをペーストしてRunボタンをクリックするとIn[*]に一旦なるのですがOut[ ]が出力されません。

もう一度もとのセルに戻ってRunボタンをクリックしないといけません。

linuxBean14.04(71)IPython3.2.1のNotebookを使うで書いたように最初のセルの実行時に間接的にサーバの起動をしてそれが動作が完了するのを待たないといけないのというのもストレスです。

ちなみにIPythonを3.2.1にダウングレードしているのでjupyter notebookとしてもImportError: No module named 'IPython.paths'がでてきてNotebookは起動できませんが、ipython notebookとするとブラウザが立ち上がってIPython Notebookが使えます。

PyCharm4.5のSetteingsでipython3.2.1をipython4.0.0にアップグレードするとjupyter notebookで起動するように戻りました。

参考にしたサイト


Installation — Jupyter Documentation 4.0.0.dev documentation
Jupyterのインストールマニュアル。

Quickstart — IPython 3.2.0 documentation
IPython3.2.0でのNotebookのセットアップ方法。

matplotlib: python plotting — Matplotlib 1.4.3 documentation
Pythonでグラフ描画するためのパッケージ。。

NumPy — Numpy
Pythonでの数値計算を高速化してくれるパッケージ。

Using IPython Notebook with PyCharm - PyCharm - Confluence
PyCharmでIPython Notebookを統合的に使うためのチュートリアル。

PyCharm 4.5.3 can't interpret Ipython Notebook V4 : PY-16624
PyCharm4.5でIPython4.0のNotebookeが動かない問題のバグ報告。

Index of /release
IPythonの古いバージョンがダウンロードできます。

次の関連記事:linuxBean14.04(71)IPython3.2.1のNotebookを使う

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ