Pythonでのデバッグのやり方は?使用するデバッガコマンド10選も紹介

最終更新日:2026年8月5日

Pythonとは

Pythonのソースコードを表す画像

Pythonとは、コードがシンプルだと評価されているプログラミング言語です。C言語よりも学習しやすいと言われているため、初心者におすすめです。

近年では機械学習だけではなく、Webアプリ開発を行うことに使われています。Pythonはインターネット上から無料で手に入れることができるため、プログラミングに興味がある人はすぐに試してみることができます。

Pythonのインストール方法

Pythonのインストール方法は、まずはPython公式サイトのダウンロードページにアクセスするところから始まります。

お使いのPCがWindowsかMacかによってバージョンが異なるため、確認してからインストールするといいでしょう。

その後ダウンロードしたインストーラーを起動し、インストールを進めていきます。インストールが終了した画面には、利用方法を解説したサイトのリンクが表示されます。

デバッグって何?

プログラムのバグを調査している様子をイメージした画像

デバッグとは、スマホやコンピューターのバグを見つけて修復するための作業のことです。

具体的には、アプリケーションを通知なくインストールする時に、ログデータを読み取る場合やデータ間でデータをコピーする時に使われます。

デバッグ作業には5つの決められた基本的な手順がありますので、一般的なバグであればソフトウェアとハードウェアのどちらでも手順に沿って対応することができます。

デバッガーとは

デバッガーとは、コンピュータープログラムのバグを探して修正するプログラムや作業する人です。デバッガーとして活躍する人の多くは、テレビゲーム業界で働いています。

バグの修正は地道な作業ですが、ゲームの開発や品質向上のためになくてはならない存在です。デバッガーはアルバイトも多いですが、プロになれば年収500万円以上を目指すこともできます。

Pythonでデバッグする方法

Pythonのデバッグ作業をしているエンジニアをイメージした画像

Pythonでもデバッグする方法があります。変数や関数の返り値の状態を調べる際に役に立ちますので、ぜひ試してみるといいでしょう。

Pythonデバッグは基礎中の基礎と言われていて、初心者でも扱いやすいです。Python付属のIDLEには、デバッガー機能がついていることもあり、やり方をマスターすれば誰でも利用できるようになります。

エラーの対処方法を知れば、プログラミングをもっと楽しめるでしょう。

pdbモジュールを使用

Pythonでデバッグする際は、pdbモジュールを使用します。pdbモジュールとは、Pythonの標準ライブラリに含まれている対話型ソースコードデバッガーのことです。

ブレークポイント設定やシングルステップ実行、スタックフレームの点検などをサポートしています。pdbはPythonのクラス(Pdbクラス)として実装されているため、必要に応じて拡張することも可能です。

pdbをインポート

まずは、pdbをインポートしていきましょう。インポートとは、標準ライブラリや外部のモジュールを読み込んで自分のプログラムから使えるようにする方法のことです。

pdbはPythonにあらかじめ同梱されている標準ライブラリなので、追加のインストールをすることなくimport pdbの1行を書くだけですぐに使い始めることができます。

set_trace()を呼び出す

次は、set_trace()を呼び出していきます。デバッグしたいと思う箇所の前にimport pdb; pdb.set_trace()と追加していきましょう。

追加した後は当該箇所で対話型デバッガーが起動してstepコマンド選択し、一行ずつ実行して確認していきます。変数の中身が見たい場合は、pコマンドを使用するといいでしょう。

breakpoint()関数を使う(Python 3.7以降)

Python 3.7以降では、組み込み関数のbreakpoint()を使うことでimport pdb; pdb.set_trace()と書かなくてもデバッガーを起動できます。

止めたい行にbreakpoint()と1行書くだけで、その行に到達したタイミングで自動的にpdbの対話型デバッガーが起動します。import pdbを書く手間が省けるうえ、環境変数PYTHONBREAKPOINTを設定すれば別のデバッガーに切り替えることもできるため、Python 3.7以降の環境ではbreakpoint()の利用が推奨されています。IDLEやVS Code、PyCharmなど主要なIDEでも同様に扱われるため、まずはbreakpoint()から試してみるといいでしょう。

Pythonでデバッグする場合のデバッガコマンド10選

Pythonのデバッガコマンドを一覧で紹介するイメージ画像

ここからは、Pythonでデバッグする場合のコマンドを紹介していきます。コマンドを一覧にしてひと通り試してみて、やり方や効果を理解しておくことがおすすめです。

実際にPythonを利用する人は、起動中によく使うコマンドをすぐ確認できるところにメモしておくと便利でしょう。いずれのコマンドもPython 3.12など最新のPythonでそのまま利用できます。

デバッグに使用するコマンド1:l(ist)

最初に紹介するデバッグに使用するコマンドは、l(ist)です。l(ist)は、現在表示しているファイルのソースコードを示してくれる便利なコマンドです。

行の周りのソースコードをチェックしたいときは、引数により表示範囲を広げることが有効です。l(ist)のコマンドを使って、Pythonでのデバッグ操作をスムーズに行なっていきましょう。

デバッグに使用するコマンド2:n(ext)

デバッグに使用するコマンド2つ目は、n(ext)です。n(ext)を使えば、1行実行できます。関数の中に入ることはありません。

nとcの違いは、nは次のステップを実行ということだけですが、cは次のブレークポイントまで全コードを実行するという点です。nとcを使いこなして、Pythonでのデバッグ作業をスムーズにしていきましょう。

デバッグに使用するコマンド3:s(tep)

s(tep)は、デバッグで使用することが多いコマンドです。1行実行し、関数の中に入るという特徴があります。

s(tep)を使う際の注意点としては、処理中に関数に入った時に関数内でも1行ずつ停止するということです。s(tep)は関数の実行結果が返ってきて、プログラムが終わってしまう時などに使われることもあります。

デバッグに使用するコマンド4:w(here)

デバッグに使用するコマンド4つ目は、w(here)です。w(here)は、現在の行を教えてくれます。

w(here)は、スタックの底にある一番新しいフレームと一緒にスタックトレースをプリントできます。そして、矢印はカレントフレームを指していますので参考にしてみてください。

さらにほとんどのコマンドのコンテキストを決定できるため、使いこなせるようになりましょう。

デバッグに使用するコマンド5:h(elp)

デバッグに使用するコマンド5つ目は、h(elp)です。h(elp)はデバッグコマンドのヘルプで、コマンドを忘れたときに使うことができます。

実際に使う際は、hかhelpと入力するといいでしょう。コマンドを忘れてしまった時や細かいコマンドを覚えることが難しいと感じる場合は、h(elp)だけでも記憶しておくと便利に使えるでしょう。

デバッグに使用するコマンド6:b(reak)

b(reak)は、現在のファイルの行番号にブレークポイントを付けることが可能なコマンドです。b(reak)と行番号を組み合わせれば、ファイル名や関数名、条件式も指定可能です。

引数がない場合は、すべてのブレークポイントをリストにしてくれます。注意点としては、第二引数を指定する場合、値は式、評価値を真にする必要があります。

実際に利用する際は、注意してください。

デバッグに使用するコマンド7:q(uit)

q(uit)は、デバッガーを終了したいときに使うコマンドです。実行しているプログラムは中断されますので、中断したいときや検証が終わった時に使用してみてください。

q(uit)を知っておくと、Pythonの問題を無事解決できた時に便利に使えるでしょう。

デバッグに使用するコマンド8:j(ump)

デバッグに使用するコマンド8つ目は、j(ump)です。j(ump)は、次に実行する行を指定する際に使えます。

底のフレーム中でのみ実行できます。前に戻って実行したり、不要な部分をスキップしてその次の処理を実行したりする際に役立つでしょう。

デバッグに使用するコマンド9:run

デバッグに使用するコマンド9つ目は、runです。runは、rだけではr(eturn)と勘違いしてしまうことがあるため、注意してみてください。

runはrestartの別名として使われており、デバッグ中のプログラムを再実行する際に使います。ヒストリー、ブレークポイント、アクションやデバッガーオプションはそのまま継続して使われています。

デバッグに使用するコマンド10:cl(ear)

デバッグに使用するコマンド10個目は、cl(ear)です。cl(ear)は、引数を決めると、その行にある全てのブレークポイントをなくすことができます。

引数がない場合は、すべてのブレークポイントをなくすことができます。特定の行のみにしたい場合は、スペースで区切られたブレークポイントナンバーのリストを指定するといいでしょう。

なお、cというコマンドは他にもあるため、clと記入するといいでしょう。

Pythonでのデバッグ例

Pythonのデバッグ実行例をイメージしたノートパソコンの画像

Pythonでのデバッグ例を紹介していきます。基本的には、バグがある直前の行にimport pdb; pdb.set_trace()を記載するだけです。

たとえば、以下のように記載します。

import pdb

def main(args):
    total = 0
    for value in args:
        total += value
    return total

if __name__ == "__main__":
    import pdb; pdb.set_trace()
    result = main([1, 2, 3])
    print(result)

このように実行すれば、main()の呼び出し前で処理が一時停止するため、nsで1行ずつ進めながら引数の値を確認し、必要なコマンドを入力していくことができます。

よくある質問(FAQ)

Q. pdbとbreakpoint()関数の違いは何ですか?

pdbはPythonの標準ライブラリに含まれる対話型デバッガーそのもので、import pdb; pdb.set_trace()のように呼び出します。一方breakpoint()はPython 3.7以降で追加された組み込み関数で、内部的にはpdbを呼び出すためのショートカットです。import pdbの記述を省略できるほか、環境変数PYTHONBREAKPOINTを使えば別のデバッガーに切り替えることもできるため、現在はbreakpoint()の利用が推奨されています。

Q. VS CodeやPyCharmなどのIDEに搭載されているデバッガでも同じことができますか?

できます。VS CodeやPyCharmなどのIDEには、行番号をクリックしてブレークポイントを設定できるビジュアルデバッガが搭載されており、pdbのコマンドを覚えなくてもステップ実行や変数の確認が可能です。ただし、サーバー上での実行やIDEを使わない環境ではpdbのコマンド操作が必要になる場面も多いため、両方の使い方を知っておくと安心です。

Q. pdbの対話型デバッガを間違えて終了してしまった場合はどうすればいいですか?

プログラムの該当箇所を再度実行すれば、再びpdb.set_trace()breakpoint()の行でデバッガーが起動します。q(uit)コマンドで終了した場合はプログラム自体が中断されるため、処理をやり直したい場合は最初からスクリプトを実行し直してください。

Q. print文でのデバッグとpdbを使ったデバッグはどちらがいいですか?

簡単な値の確認であればprint文でも十分ですが、print文を都度書き足して削除する手間がかかるうえ、ループの途中で処理を止めて変数を細かく調べることはできません。pdbやbreakpoint()を使えば、コードを書き換えずにその場でブレークポイントを設定し、1行ずつ実行しながら複数の変数の状態を確認できるため、複雑なバグの原因調査にはデバッガーの利用がおすすめです。

Q. 今回紹介したデバッガコマンドは最新のPython(3.12など)でも使えますか?

使えます。l(ist)・n(ext)・s(tep)・w(here)・h(elp)・b(reak)・q(uit)・j(ump)・run・cl(ear)はいずれもpdbモジュールの標準コマンドであり、Python 3.12を含む現行バージョンでも変わらず利用できます。加えてPython 3.7以降ではbreakpoint()関数が使えるようになっている点だけ押さえておくといいでしょう。

まとめ:Pythonでのデバッグについて

Pythonでのデバッグを学びプログラミングを楽しむイメージ画像

この記事のポイント:

  • デバッグとは、プログラムに潜むバグを見つけて修正する作業のこと
  • Pythonでは標準ライブラリのpdbモジュールを使って対話的にデバッグできる
  • Python 3.7以降はbreakpoint()関数を使うことで、より手軽にデバッガーを起動できる
  • l(ist)・n(ext)・s(tep)・w(here)・h(elp)・b(reak)・q(uit)・j(ump)・run・cl(ear)の10コマンドを覚えておくと操作がスムーズになる
  • IDEのビジュアルデバッガとpdbのコマンド操作、どちらも知っておくと様々な開発環境に対応できる

今回紹介したデバッガコマンド以外にもコマンドはありますので、自分の使いやすいコマンドを活用していくといいでしょう。

そしてPythonでのデバッグのやり方をしって、プログラミングを楽しんでいくことをおすすめします。まずは、何度も繰り返しコマンドを使うことからスタートしてみましょう。

▼ アクロビジョンについて

👔

一緒に働きましょう

一人ひとりのキャリアに向き合い、
活躍できる現場をご紹介します。

採用サイトを見る →
💻

システム開発のご依頼・ご相談

コンサルティングから運用保守まで、
ワンストップで対応します。

まずはお気軽にご相談ください →