閉じる

Pythonの対話モードを爆速化するIPythonとbpythonの使い方

標準のPython対話モードは軽量ですが、補完や着色がシンプルで、調べ物をしながらコードを書くには少し力不足です。

そこで活躍するのがIPythonとbpythonです。

どちらも導入が簡単で、補完、カラー、履歴、タイミング計測など日常の試行錯誤を強力に支援します。

この記事では、初心者の方がすぐに快適に使い始められるよう、使い方を具体的に解説します。

Pythonの対話モードを速くするIPythonとbpythonとは

IPythonとbpythonは、標準のREPL(Read-Eval-Print Loop)をより使いやすくした代替シェルです。

補完やカラー、ヘルプ、履歴の扱いやすさなどを高め、学習から実験、プロトタイピングまでの速度を大幅に上げます

標準REPLとの違い

標準REPLは最小限の機能で安定していますが、操作の効率化は手作業に委ねられます。

IPythonは豊富なマジックコマンド強力な履歴機能が特長で、Jupyterの核にもなっています。

bpythonは入力中のリアルタイム補完とドキュメントの自動表示で、とにかく気持ちよく書ける点が魅力です。

初心者にうれしい機能(補完・カラー)

初心者がつまずきやすいのは、関数名や引数を覚えきれないことです。

IPythonとbpythonはTab補完、引数ヒント、シンタックスハイライトで負担を軽減します。

さらに、IPythonはobj?obj??でドキュメントやソースにすぐアクセスでき、bpythonは入力中に下部ペインへヘルプが自動表示されます。

使う場面とメリット

  • 動作確認や小さな関数の試作が圧倒的に速くなります。
  • エラー原因の切り分けがしやすく、試行回数を増やして学習速度を上げられます
  • タイミング計測や履歴再実行で、「うまくいった手順」を素早く再現できます。

IPythonの使い方

IPythonは機能が豊富で、日常の実験から分析まで幅広く使えます。

迷ったらまずはIPythonというくらい定番です。

インストール(pip)

仮想環境の利用が望ましいですが、ここでは最短のインストール方法だけ紹介します。

Shell
# IPythonのインストール
pip install -U ipython
実行結果
# 省略表示
Successfully installed ipython-8.26.0 prompt-toolkit-3.x ...

起動と終了方法

ターミナルから起動します。

終了はCtrl+Dまたはexit()です。

Shell
# 起動
ipython
実行結果
Python 3.12.x (main, ...) 
IPython 8.26.0 -- An enhanced Interactive Python.
In [1]:

終了の例:

Python
# 終了のしかた
exit()  # または Ctrl+D

自動補完とヘルプ(docstring)

Tab補完で属性や関数候補を表示し、?でドキュメント、??でより詳細を参照します。

Python
# Tab補完とdocstringの例
import math  # 数学モジュールを読み込み

math.si    # ← ここで Tab を押すと sin, sinh, isinf, isfinite などが候補に
math.sin(1.0)  # 値を計算

len?        # len関数のヘルプを表示(末尾に ?)
str.upper?? # 実装(可能ならソース付近)まで詳しく(??)
実行結果
Signature: len(obj, /)
Docstring:
Return the number of items in a container.
Type:      builtin_function_or_method
--------------------------------------
Signature: str.upper(self, /)
Docstring:
Return a copy of the string converted to uppercase.
Type:      method_descriptor

ポイント

obj?は使い勝手がよく、Pythonの組み込み関数やライブラリの使い方をその場で確認できます。

マジックコマンドの基礎(%timeit, %paste)

IPythonの核機能がマジックコマンドです。

特によく使うのが%timeit%pasteです。

Python
# %timeitで処理時間を測る例
def squares(n: int):
    # リスト内包表記で二乗のリストを作る
    return [i * i for i in range(n)]

%timeit squares(10_000)  # 実行時間を繰り返し計測して統計を表示
実行結果
# 出力は環境により異なります
1.12 ms ± 40.8 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

複数行コードをクリップボードから安全に貼り付けるには%paste(自動実行)か%cpaste(貼り付け→確認→実行)が便利です。

Python
# 例: クリップボードに次の3行をコピーしておきます:
# def greet(name):
#     return f"Hello, {name}!"
# print(greet("IPython"))

%paste  # クリップボードの内容を貼り付けて即実行
実行結果
Hello, IPython

%cpasteは貼り付け内容を確認してから--で終了し実行できます。

整形が崩れるコードでも安全に投入できます。

履歴操作と直前結果(_)

IPythonは履歴と直前結果の扱いが強力です。

直前結果は_、2つ前は__、3つ前は___で参照できます。

Python
# 直前結果の再利用と履歴の表示
2 + 3
_ * 10              # 直前の結果(5)を利用
%history -n 1-5     # 直近の入力履歴を番号付きで表示
実行結果
5
50
1: 2 + 3
2: _ * 10
3: %history -n 1-5

入力文字列そのものは_iN(Nは入力番号)で参照できます。

Python
# 2番目の入力そのもの
_i2
実行結果
'_ * 10'
他にも

%rerunで特定の履歴番号を再実行、%saveで履歴をファイル保存が可能です。

クリアとリセット(%clear, %reset)

画面をきれいにしたい時と、環境変数をまっさらにしたい時で操作が異なります。

  • 画面クリアはCtrl+Lまたは!clear(Windowsは!cls)が確実です。
  • 変数や関数定義を消すには%resetを使います。
Python
# 画面のクリア(表示だけ消す)
!clear      # Linux/macOS
# !cls      # Windows

# 名前空間のリセット(プロンプト確認をスキップするには -f)
%reset -f
注意

IPythonのバージョンによって%clearが存在しない場合があります。

その場合はCtrl+L!clearを使ってください。

bpythonの使い方

bpythonはとにかく入力が気持ち良いREPLです。

入力中に候補とドキュメントが自動で現れ、打鍵数が減るので試行錯誤が捗ります。

POSIX互換環境(LinuxやmacOSなど)で使用できるtermiosモジュールに依存しているため、Windowsでは動作しません。注意しましょう。

インストール(pip)

Shell
# bpythonのインストール
pip install -U bpython
実行結果
Successfully installed bpython-0.24.x curtsies-<ver> ...

Windowsで使用したい場合は、WSLの利用を検討してください。

起動と終了方法

Shell
bpython
実行結果
bpython version 0.24.x on top of Python 3.12.x
>>>

終了はCtrl+Dまたはexit()です。

リアルタイム補完とヒント

bpythonでは入力途中から候補とドキュメントがポップアップします。

Tabを押さなくても候補が見えるのが特徴です。

Python
# 入力途中から候補とdocstringが自動で表示されます
import datetime
datetime.dat    # ← 入力中に候補(date, datetime, ...)、下部にdocstringが表示
実行結果
候補 (抜粋):
- date       (class datetime.date)
- datetime   (class datetime.datetime)
- timedelta  (class datetime.timedelta)
Docstring (date):
class date(year, month, day) ...
ポイント

候補は矢印キーやTabで選べ、Enterで確定できます。

入力の流れが途切れにくいのが利点です。

取り消し(Rewind)の使い方

bpythonの目玉機能がRewindです。

Ctrl+Rで直前の「実行単位」を巻き戻し、定義や変数の状態を1ステップ前へ戻せます。

Python
# Rewindの例
x = 10
x += 1
print(x)  # => 11 と表示されるはず

# ここで Ctrl+R を押すと、直前の "print(x)" が取り消される
# もう一度 Ctrl+R で、さらに1つ前のステップ(x += 1)も取り消せます
実行結果
>>> x = 10
>>> x += 1
>>> print(x)
11
# (Ctrl-R 2回実行後)
>>> print(x)
10
注意

RewindはREPL内部の状態を巻き戻しますが、ファイル書き込みやネットワーク送信など外部への副作用は元に戻りません

カラー表示とシンタックスハイライト

bpythonは入力中に構文ハイライトが効くため、括弧の対応や文字列の閉じ忘れに気づきやすいです。

また、例外トレースバックも色分けされ、どこで失敗したかを素早く把握できます。

Python
# 色分けの見え方は端末設定によります(概念例)
def area(r):
    return 3.14 * r * r  # 数値や演算子、キーワードが着色

area(2)
実行結果
12.56

入力履歴と保存(:save)

bpythonはセッション中の入力をファイルへ保存できます。

:saveというコロンプレフィックスのコマンドを使います。

text
:save session.py   # 現在のバッファ(入力内容)を保存
実行結果
Saved to session.py

保存されたファイルは通常のPythonとして実行できます。

Python
# session.py の例(保存された内容の一部)
import math
def area(r: float) -> float:
    return math.pi * r * r

print(area(2))
実行結果
12.566370614359172

IPythonとbpythonの違いと選び方

どちらも優れていますが、得意分野が少し違います

用途に合わせて選ぶと幸せになれます。

機能の比較(補完・速度)

観点IPythonbpython備考
起動・操作感充実機能ゆえにやや重量級とても軽快小規模実験はbpythonの快適さが光る
補完Tab補完(豊富な候補)入力中にリアルタイム補完bpythonは「見る→選ぶ」が少ない打鍵で済む
ドキュメントobj?, obj?? で詳細下部に自動表示どちらも学習効率が高い
マジックコマンド非常に豊富(%timeit, %history, %run 等)なし計測や再実行、保存はIPython有利
履歴・再実行%history, %rerun, _ など強力履歴スクロール、RewindRewindはbpython独自の快適機能
外部コマンド!ls, !pip 等のシェル連携が強い連携は控えめIPythonは作業用シェルとしても優秀
拡張性拡張/設定が豊富、Jupyter互換シンプル志向解析・研究用途はIPythonが向く
学習曲線少しありほぼなしすぐ気持ちよく使えるのはbpython
Windows相性良好追加セットアップが必要な場合ありwindows-curses や WSLで改善

迷ったらIPPython

総合力で選ぶならIPythonです。

マジックコマンドと履歴・保存機能が揃い、学習から本格的な分析、Jupyter連携まで一本化できます。

あとからbpythonを併用するのも簡単です。

サクサク書くならbpython

とにかく打って気持ちよく結果を見たいならbpythonです。

リアルタイム補完とヒントで、タイプ数が減り、関数名や引数を忘れても勢いが止まりません。

短い実験や関数の試作に最適です。

最初の一歩のチェックリスト

  • pip install ipython bpythonで両方入れる
  • IPythonで%timeit%historyobj?を一通り試す
  • bpythonで入力中の補完とヘルプが出る感覚を確かめる
  • bpythonのCtrl+R(Rewind)で状態が戻ることを確認する
  • IPythonの%paste%cpasteで複数行貼り付けを体験
  • 必要に応じてbpythonの:saveでセッションを保存
  • 画面が乱れたらCtrl+L!clearで整理
  • Windowsで問題があればWindows Terminal/WSLやwindows-cursesを検討

まとめ

IPythonとbpythonは、標準REPLで感じがちな物足りなさを解消し、学習と試行錯誤のスピードを大幅に引き上げる強力なツールです。

機能の厚みと再現性、Jupyter連携まで視野に入れるならIPython、入力体験の快適さと小回り重視ならbpythonが相性抜群です。

まずはどちらかを入れて、Tab補完とヘルプ、履歴、最低限の計測から始めてみてください。

きっと「書いて試す」が楽しくなり、Pythonの理解が一段と深まります。

この記事を書いた人
エーテリア編集部
エーテリア編集部

人気のPythonを初めて学ぶ方向けに、文法の基本から小さな自動化まで、実際に手を動かして理解できる記事を書いています。

クラウドSSLサイトシールは安心の証です。

URLをコピーしました!