IPyDesk — 変数も図も残る Python 実行環境
F5 で Python スクリプトを常駐 IPython セッションの中で実行します。
赤丸(ブレークポイント)で止められ、実行が終わっても変数と図がそのまま残ります。
MATLAB のように「実行 → 変数を確認 → 一部だけ実行し直す」を繰り返せます。
- F5 で実行、終わっても変数が残る。プロンプトで続きの計算ができます
- 赤丸で停止・ステップ実行。debugpy を使わず、赤丸が無ければ通常と同じ速度で動きます
# %% のセル実行。重い前処理は 1 回だけにして、試したいセルだけを何度でも
- エラー後デバッグ。落ちた行で止まった状態に、走り直さずに入れます
- 図は VS Code のタブに表示。
plt.show() で止まらず、Ctrl+C で画像をコピーできます
- Workspace ビューで変数を一覧表示。複数セッションの並行実行にも対応
動作環境
- Windows 専用(macOS / Linux では動きません)
- Python 3.9 以上と、
ipython ipdb matplotlib tornado
- 不足していれば初回の F5 で[インストール]を選ぶだけで入ります
- 自分で入れる場合:
python -m pip install ipython ipdb matplotlib tornado
ipydesk パッケージは拡張に同梱されているため、pip install ipydesk は不要です
はじめかた
- フォルダを開きます(ファイル → フォルダーを開く)。ファイル単体で開くと赤丸が効きません
.py ファイルを開き、行番号の左をクリックして赤丸を置きます
- F5 を押します。ターミナル「IPyDesk」が開き、赤丸の行で止まります
- F5 で続行します。最後まで進むと
In [n]: に戻り、変数がそのまま残っています
キー操作
| キー |
動作 |
| F5 |
実行(2 回目以降は同じセッションで再実行。実行中なら別のセッションで実行) |
| Alt+F5 |
実行し、エラーが出たらその行で止まる |
| Ctrl+Alt+F5 |
新しいセッションで実行 |
| Ctrl+Enter / Shift+Enter |
セルを実行 / 実行して次のセルへ |
| Ctrl+Shift+Enter |
選択範囲(選択が無ければ現在行)を実行 |
| F5 / F10 / F11 / Shift+F11 |
停止中: 続行 / ステップオーバー / ステップイン / ステップアウト |
| Shift+F5 |
停止中: デバッガを抜けてプロンプトへ |
| Ctrl+Shift+F5 |
セッションを作り直す |
| Ctrl+C |
Figure タブ: 図を画像としてコピー |
セル実行
# %% の行でスクリプトを区切ると、Ctrl+Enter でカーソルのあるセルだけを実行できます。
セルの最後が式なら値が Out[n] に表示され、赤丸もそのまま効きます。
# %% データの準備(1 回だけ)
import numpy as np
x = np.linspace(0, 10, 100)
# %% ここだけ何度も試す
y = np.sin(2 * x)
y.max()
Jupyter 拡張に Ctrl+Enter を取られる場合は、Ctrl+Shift+P →
「IPyDesk: Use IPyDesk Cell Keys」を実行してください。
エラーが出たとき
エラーで止まらずにプロンプトへ戻り、ステータスバーに ⚠ エラー名(ファイル:行) が出ます。
クリックすると、エラーが起きた行で止まった状態に入れます。重い計算の最後で落ちても、走り直す必要はありません。
図の表示
figure ごとに VS Code のタブが開きます。📋 か Ctrl+C でコピー、💾 で png / svg / pdf に保存できます。
表示のしかたは ipydesk.figureDisplay で切り替えられます。
設定
| 設定 |
既定 |
内容 |
ipydesk.pythonPath |
python |
使う Python の実行ファイル(フルパス可) |
ipydesk.figureDisplay |
tab |
図の表示先: tab / manual(自動で開かない)/ window(別ウィンドウ)/ none |
ipydesk.windowBackend |
auto |
window のときのバックエンド: auto / qt / tk |
ipydesk.webaggPort |
8988 |
図の表示に使うポート |
ipydesk.showCellDecorations |
true |
# %% の区切り線とセルの強調を表示する |
ipydesk.useBundledPython |
true |
同梱の ipydesk を使う(通常は変更不要) |
figureDisplay を変えたら Ctrl+Shift+F5 でセッションを作り直してください。
うまく動かないとき
| 症状 |
対処 |
| 赤丸で止まらない |
フォルダを開いて、その中にスクリプトを置く |
| 依存パッケージの確認が毎回出る |
ipydesk.pythonPath に、パッケージを入れた Python のフルパスを指定する |
| 図が出ない / タブが空白 |
ipydesk.webaggPort を別の番号に変えて Ctrl+Shift+F5 |
| Ctrl+Enter でインタラクティブウィンドウが開く |
「IPyDesk: Use IPyDesk Cell Keys」を実行する |
| 動きがおかしい |
Ctrl+Shift+F5 でセッションを作り直す |
拡張の動作ログは .vscode/py_ext_log.txt に残ります。拡張は .vscode/py_* に連携用のファイルを作るので、
git で管理している場合は .gitignore に .vscode/py_* を追加しておくと便利です。
制約
- 赤丸がある実行ではトレースが入るため遅くなります(赤丸が無ければ通常の速度)
- 停止中のマウスホバーでの変数表示には未対応です(Workspace ビューか
ipdb> で確認)
- 標準ライブラリ・IPython・matplotlib の内部には F11 でも入りません
| |