ライブラリ: IPython その1

「 IPython 」という Python のライブラリについてご紹介します。

IPython boot

IPython とは、一言でいうと「 Python の対話型モードの強化版」です。 Python 環境をインストールするとデフォルトで付いてくる対話型 Python にさまざまな便利機能を追加したようなものになります。

Ruby をご存知の方であれば「 Python 版の pry 」と表現するとわかりやすいかもしれません。

基本的には、デフォルトの対話型モードと同じ使い方をします。

IPython には、大きく分けて

  • 純粋な CUI モード
  • ブラウザを使ったモード

の 2 つの使い方があります。

今回はこのうちの前者「純粋な CUI モード」に絞って見ていきたいと思います。詳しい解説はすでに多くの方がされているので、ここでは基本的な部分をざっとご紹介します。

純粋な CUI モード

この CUI モードは、ターミナル/コマンドライン上で利用するものです。

実際に使いはじめる前に、まずはインストールをしましょう。

インストール

インストール方法として、さまざまな方法があります。いちばんカンタンなのはパッケージ管理ツールで入れる方法です。

私の環境では例のごとく pip でインストールしました。

$ pip install ipython

実際に IPython を走らせてみるとエラーが出て立ち上がらなかったので「エラーが出るごとに、欠けているものを都度都度インストールする」ということを繰り返しました。

pip でパッとやってみてダメなら、ここでハマってしまうと苦しいので、素直に何らかのパッケージ管理ツールを使う方法がおすすめです。

インストールについてはこのあたりが詳しいです。

立ち上げる

インストールが無事終われば、 IPython を立ち上げます。

$ ipython

IPython が立ち上がると、次のような画面になります。

IPython boot

ちなみに、Python 3 の場合はコマンド名が ipython3 に変わっています。

便利機能その1 補完機能

IPython の便利な機能のひとつが、「補完機能」です。変数名や何かを途中まで打ってタブキーを押すと、該当するものが自動で補完されます。

IPython auto fill

候補がひとつしかない場合はそれが入力されますし、複数ある場合は一覧表示されます。

変数名の他に import でファイル名やクラス名、メソッド名を指定したいときなんかにも、バリバリ補完してくれます。

この機能だけでも、IPythonを使う価値はあるかと思います。

便利機能その2 コマンド実行機能

もうひとつ便利な機能に、「コマンド実行機能」です。「 ! 」に続けてコマンドを入力すると、それがコマンドとしてそのまま実行できるというものです。

IPython terminal command

vimでコマンドを呼び出すのと同じような感じでしょうか。

便利機能その3 マジックファンクション機能

他には「マジックファンクション」という機能もあります。これは「 % 」始まりの文字列を入力すると各種擬似関数が使えるというものです。

IPython magic function time

たとえば、「 %run 」というコマンドは Python スクリプトを実行する関数、「 %time 」というコマンドはその後に与えられたコードの実行時間を計測する関数です。「 %history 」は直近に入力したコードを返してくれる関数で、「 %paste 」はクリップボードに保存された文字列を Python コードとして実行してくれる関数です。

他にもたくさんのマジックファンクションが用意されています。

便利機能その4 オブジェクト調査機能

オブジェクト名のあとに「 ? 」をつけて「 オブジェクト名? 」とすると、そのオブジェクトの概要を見ることができます。型や中身、 Docstring などをざっと確認することができます。

IPython object details

以上です。

ここにあげた機能はごく一部で、他にもさまざまな機能があります。ひとまず IPython がインストールできたら、 IPython 起動後「 %quickref 」と打てば、かんたんなリファレンスを見ることもできます。さらに詳しく知りたい場合には以下、公式サイトや参考サイトをご覧ください。

今回は冒頭にあげた IPython のふたつの使い方

  • 純粋なCUIモード
  • ブラウザを使ったモード

のうち、前者の「 CUI モード」についてのみご説明しました。ブラウザを使ったモードについてはまた記事を改めます。

参考

公式: