IPython

IPython Shell による方法

Python を通常起動させると、一行ずつしかコードを打つことができず、非常に使いづらいです。そこで開発されたのが「IPython(あいぱいそん)」です(Anaconda のパッケージをインストールした場合、IPythonは使用可能です)。

IPython の場合、たとえば、
import numpy
from matplotlib import pyplot
x = numpy.arange(0, 10, 0.1)
y = numpy.cos(x)
pyplot.plot(x,y)
pyplot.show()
と打ち (一気にコピー&ペーストできる) return を押すと、新しいウィンドウが開いてグラフが表示されます。
起動方法
  1. 「ターミナル」を起動します。
  2. 「cd (フォルダ名)」などのコマンドを使い、作業用のフォルダ(後述の Python ファイルが保存してあるフォルダ)に移動します。
  3. #highlight(){ipython} と打つと,生の IPython (IPython Shell) が立ち上がります。
    • IPythonでは、基本的に Python 2.7.5 が裏側で動くようになっています。


IPython Notebook による方法

Anaconda をインストールした人は「IPython Notebook」 が使えます。
これは、Webブラウザのウィンドウ上で IPython が使えるもので、非常に実用的なものです。

Mac ではターミナルで、Windows では cmd (コマンドプロンプト) で、
ipython notebook
と打てば、web ブラウザで ipython が立ち上がります。
IPython Notebook 上では、コード全体を下図のようにコピペし、Shift+Enterで動かすことが可能です。
ipython_sample1.jpg

.ipynb ファイル

 Notebook での作業内容は .ipynb という拡張子を持つファイルに (IPython Notebook を立ち上げたときにいたフォルダに) 自動で保存されます。
  • 保存される場所は、ターミナル (あるいは cmd) で「ipython notebook」と入力した時のフォルダです。
  • ですので、「ipython notebook」と入力する前に、Python の作業用フォルダ(自分で好きなように作ってください)に移動しておくことが好ましいです。
保存されるデフォルトのファイル名は "Untitled0.ipynb" というファイル名で、あとで見たときに中身が何なのか分かりません。ですので、Notebook の web ブラウザのウィンドウの上部、"IP[y]: Notebook" とあるところの横の "Untitled0" をクリックして、内容を表す名前をつけておくとよいです。

グラフの表示に関して

グラフ描画のコードを実行すると、ウィンドウが立ち上がってグラフが表示されます。
(これはこれでよいが、ウィンドウを閉じ忘れると次のグラフが表示されないなど、ちょっと面倒。)

ブラウザの notebook 内に表示させるには、notebook の最初で、
%matplotlib inline
と打ちます。

もう一つの方法は、ターミナル (あるいは cmd) で ipython notebook を立ち上げるときに
ipython notebook --matplotlib inline
と打ちます。

いろいろな web page で、
ipython notebook --pylab inline
と打つとよい、と紹介されているが、これは推奨されないとのこと:



IPython Qt Console

Anaconda をインストールした人は IPython Qt Console というのも使えます。

Mac ではターミナルで、Windows では cmd (コマンドプロンプト) で、
ipython qtconsole
と打てば、新しいウィンドウ (Qt Console) が開いて ipython が立ち上がります。

ウィンドウ内でグラフを表示させるには、notebook の場合と同様、最初に
%matplotlib inline
と書くか、ターミナル (あるいは cmd) で ipython qtconsole を立ち上げるときに
ipython qtconsole --matplotlib inline
と打つかします。

ipythonqt.png

(実行せずに) 改行するには control+return
そのあとに実行するには shift+return


Tips

ターミナル (あるいは cmd) を開いてすぐに ipython コマンドを打つのではなく、作業するディレクトリ (フォルダ) まで行ってから ipython を立ち上げた方がよい。

Mac では:
たとえば「Documents」フォルダの中の「Zemi」フォルダの中の「python」フォルダで作業するなら、
cd Documents/Zemi/python
と打ってから ipython なり ipython notebook なりを打つ。
(もしエラーが出たら、代わりに
cd ~/Documents/Zemi/python
と打つ)
あるいは、ターミナルで
cd 
まで打って (cd のあとは半角スペース)、行き先のフォルダ (作業フォルダ) をターミナルのウィンドウにドラッグ&ドロップして return するのでもよい。

Windows では :
Windowsでも仕方はMacでの方法と同じ。

cmd 1.png
cd Documents/Zemi/python
を打ってからipython notebookを打つと、指定したフォルダで作業が出来る。

もし、cmdでディレクトリを何も指定せずにipython notebookを実行すると、
webpage0.png
このように User/(自分が設定したパソコン名)の所で作業が行われる。

しかし、上述したようにcmdでフォルダを指定した上で作業をしたほうが、ファイルを扱う時(保存、アップロードなど)便利である。
webpage1.png

(自分のパソコンの中に.ipynbファイルがあっても、それが保存されているフォルダとターミナル(あるいは cmd)で指定した作業フォルダが異なると、ipython notebookを立ち上げてもdashboardに表れない。)

作業フォルダに .ipynb ファイルがあれば、そこで ipython notebook を立ち上げると dashboard にそのファイルが表示され、それを選択することでファイル保存時の作業が再開できる。

注意


名前空間

1つのウィンドウの中でどんどんコードを実行していけるのが IPython の便利な点ですが、落とし穴もあります。

次の2つのファイルがあるとしましょう。

test1.py (正しいコード)
import numpy as np
x = np.linspace(0, 10, 3)
print x

test2.py (不完全なコード)
y = np.linspace(0, 5, 3)
print y

test2.py を実行する (内容をセルにコピー&ペーストして実行するとか、test2.py があるフォルダまで行って run test2.py するとかする) と、numpy を import せずに np.linspace が出てくるため、エラーが出ます。

ところが、test1.py を実行したあとに、test2.py の内容をセルにコピー&ペーストして実行すると、test1.py が import した numpy が残っていて、test2.py の np.linspace が実行されてしまってエラーを出してくれません。

したがって、セルにコピー&ペーストして作業するのはいいのですが、ある程度できたらそのコードを単独で実行してエラーが出ないかチェックする必要があります。

方法はいくつかあって(ファイル名が filename.py だとして)
  • ipython で run filename.py
  • ipython で %reset (変数を回復できないけどいいか,と聞かれるから y と打つ)
  • ターミナルあるいは cmd を立ち上げて (作業フォルダまで cd で行ってから) python filename.py
  • Dashboard で New Notebook を立ち上げて,まっさらなウィンドウにコピー&ペーストして実行
のいずれかをやってみます。

  • 最終更新:2015-04-27 18:26:06

このWIKIを編集するにはパスワード入力が必要です

認証パスワード