アプリケーションを本番環境にデプロイした後、デバッグを後回しにするべきではありません。開発中にできるだけ頻繁に実行する必要があります。これにより、コードのバグを簡単に追跡でき、開発者はコードが実行されない原因となっている問題を修正できます。ほとんどの開発者は、Python の print 関数が開発中に発生するエラーの正確な図を提供しないことを知りません。では、これらのエラーを特定して修正するには、何を使用すればよいでしょうか?答えはデバッグツールです!生産性を向上させ、コーディング プロセスの時間を効率的にするのに役立ちます。
Python デバッガー (pdb) は、Python プログラム用の対話型ソース コード デバッガーです。デバッグ以外にも、条件付きブレークポイントの設定、ソース コードの行ごとのステップ実行、特定の行とその呼び出しスタックでの変数のチェックなどの追加機能が提供されます。
この記事では、デバッグ ツールpdb
を使用してコードを検査および分析し、テスト中およびユーザーへの出荷前に業界標準に準拠させる方法について説明します。
前提条件
デバッグのプロセスを理解するには、次のものが必要です。
パイソン ローカル マシンにインストール- Python の知識
Python プログラムを改善する方法
Python コードを正しくデバッグするには、生産性とエラー チェックの向上に役立つ次のヒントに注意する必要があります。
- Linting: コードを実行する前にコードの問題を検出します。これを機能させる方法は、プログラムを色分けするのに役立つソフトウェアをインストールすることです。これにより、エラーが少なくなり、IDE (VS Code) がエラーを指摘したときにすばやく解決できます。そのようなツールの 1 つが
ピリント 、コーディング時に提案を提供します。 - 統合開発環境 (IDE) / エディター: Python 固有の IDE など
PyCharm またVS コード PEP8 に基づいてコードを自動フォーマットするのに役立つツールと機能が組み込まれており、エラーが発生したときにコードを強調表示します。 - エラーの読み取り: Python プログラムのコード エラーの読み取りを学習すると、コンソールでエラーの意味を理解できるため、問題の半分が大幅に解決されます。
name = 'teri print(name)
コンソール
pdb を使用した Python のデバッグ
このセクションでは、Python デバッガーpdb
を使用して Python コードをテストします。コードを実行し、インタラクティブな環境でリアルタイムに発生するエラーを解決します。
組み込みのpdb
モジュールは、作業ツールへのインストール時に Python に付属する標準ライブラリの一部です。このツールは、プログラムのテスト時に使用できるその他のコマンドをいくつか提供します。 pdbを使って関数を書いてみましょう。新しいファイルapp.py
または任意の名前をコード エディターで作成し、末尾に.py
拡張子を付けます。
import pdb def multiply_number(num1, num2): pdb.set_trace() return num1 * num2 print(multiply_number(5, 10))
上記のコードは次のことを行います。
- ライブラリ
pdb
をインポートする num1
とnum2
の 2 つのパラメーターを持つ関数multiply_number
を定義します。-
set_trace
メソッドを使用してライブラリを呼び出します。これは、プログラムを一時停止し、コンソールでコードを入力してテストできるデバッガモードに入るため、pdb
オブジェクトで役立ちます。 - return キーワードで引数の結果を取得する
- 関数を呼び出して数値引数を渡す
コマンドpython3 <name-of-file.py>
を使用してこのプログラムを実行すると、デバッガーに入り、コードを実行するためのいくつかのデバッガー コマンドを渡すことができます。を確認してください
次に、コンソールでいくつかのコマンドを試してみましょう。
a または args と入力すると、現在の関数multiply_number で使用されているすべての引数が一覧表示されます。
別のコマンドを試す前に、app.py ファイルのコードを更新して引数の一部として文字列を含め、実行中にプログラムがエラーを出力するようにします。
# app.py import pdb def multiply_number(num1, num2): pdb.set_trace() return num1 * num2 print(multiply_number(5, 'execute'))
コマンド python3 app.py を使用してプログラムを再実行します。
コンソールにnum1
とnum2
を入力すると、multiply_number 関数で渡された引数の結果が出力されます。
試すことができるその他のコマンドには、ドキュメントに記載されている次のステップ、続行などがあります。
最後に、 pdb
がコード内のエラーと発生した行番号を特定したら、コードに戻ってエラーを修正し、適切な引数を使用してプログラムを実行することでクリーンアップできます。
注: pdb
モジュールは、本番用ではなく、開発中のテスト用です。デプロイする前に削除してください。
結論
この記事では、コードを修正してエラーを特定する際にベスト プラクティスを採用する方法について説明します。メソッドの使用は、コードの品質を向上させるのに役立つ多くの機能を備えているため、print 関数よりも優れています。
もっと詳しく知る