2018/02/13
2020/04/14
PdbでPythonコードを楽にデバッグする方法
Pythonの実行でエラーが出た時に、print文などで一々確認するのは疲れますよね。かといって、統合開発環境(IDE)を導入するのも面倒。という人のために、Pythonコード上に簡単な1行を挿入するだけでデバッグする方法をご紹介いたします。
1行挿入するだけで、デバッグポイントを設置
import pdb;pdb.set_trace()
以上の1行をプログラムを止めたい場所に挿入するだけで、デバッグポイントを設置し、少しずつプログラムを実行することが可能になります。例えば次のようにします。
print("Hello") #デバッグポイントを設置 import pdb;pdb.set_trace() print("World")
これを実行すると、”Hello”だけがプリントされ、コンソールは以下のような画面になります。
Hello > -> print("World") (Pdb)
ここで(Pdb) の横にコマンドを入力することで、プログラムを再開したり、終了したりすることができます。続けてプログラムを実行したい場合は、cかnを入力してEnterを押しましょう。すると、”World”もプリントされます。終了はqです。
よく使うコマンド
import pdb;pdb.set_trace()を使った時によく使われるコマンドを以下の表に示します。
コマンド | 意味 |
---|---|
n | next。次のステップを実行 |
c | continue。次のデバッグポイントまで全コードを実行 |
l | list。現在いるところの前後のソースコードを表示する。 |
q | quit。プログラムを終了する。 |
nとcの違いは、nが次の1処理を実行するのに対して、cは次のimport pdb;pdb.set_trace()までの全コードを実行します。
(Pdb)の横にPythonコードも書き込める!
コマンド以外にもPythonコードも書き込めます。こちらは変数の中身を確認したりするのに非常に便利。以下に書き方の一例をしまします。
(Pdb) nameList = ["Taro","Hanako","Satomi"] (Pdb) nameList ['Taro', 'Hanako', 'Satomi'] (Pdb) print(nameList) ['Taro', 'Hanako', 'Satomi'] (Pdb) p nameList ['Taro', 'Hanako', 'Satomi'] (Pdb) import pandas as pd (Pdb) pd.DataFrame(nameList) 0 0 Taro 1 Hanako 2 Satomi
このように、変数の中身の確認、新しい変数の作成、ライブラリのインポートなど、通常のPython上で出来ることが出来ます。
これでコーディング効率が大幅にアップします。非常に便利なので、今まで使ってなかった方は是非試して見てください!
(totalcount 1,353 回, dailycount 28回 , overallcount 4,178,686 回)
最新投稿記事
-
AIプロジェクトの企画と失敗しない進め方を解説 2021年1月19日
-
E資格・領域特化コース受講体験談:山田裕之さん 「E資格で基礎知識を、領域特化コースで実務への応用を」 2021年1月8日
-
AI導入とは?RPAとの関係、プロセス、事例、メリット、費用を詳細に解説 2020年12月7日
-
注目のAI開発企業11社!支援領域や提供方法など検証! 2020年10月28日
-
AI人材を育成できる研修プログラムを一挙紹介! 2020年10月20日
-
【2021年版】期待のAI資格11選!就職・転職にも使える! 2020年10月18日
-
JDLAとは?G検定、E資格の認定プログラム、合格者の会など紹介! 2020年10月14日
-
G検定(2020#3)受験申し込み開始、11月7日(土)実施-JDLA 2020年10月1日
-
【独占】コロナ禍で人材登録急増、アノテーション単月売上高は4倍超-パソナJOB HUB 2020年10月1日
-
E資格を転職に活用!評判とデータを徹底調査! 2020年9月29日
週間ランキング
【2021年版】コスパ重視のG検定対策!おすすめの本・講座・教材を一挙紹介! 2020年6月6日
【2021年版】期待のAI資格11選!就職・転職にも使える! 2020年10月18日
最弱オセロを初めて攻略した天才オセロ高校生。負け方を解説! 2020年7月31日
G検定に短期間・独学で合格した勉強法を解説! 2020年8月3日
注目のAI開発企業11社!支援領域や提供方法など検証! 2020年10月28日
効率重視のE資格対策!参考書・模擬試験・過去問を徹底解説! 2020年8月7日
G検定は難しい?難易度・合格ライン・問題を徹底解説! 2020年6月19日
MLOpsとは|定義、メリット、課題、ツール、ワークフローを分かりやすく解説 2020年9月18日
G検定に落ちた人、合格した人。勉強法の違いはどこにある? 2020年6月25日
E資格の難易度を、合格率と問題から徹底分析! 2020年8月11日
