PyCharmを使ったPythonコードのデバッグ

視覚的なデバッグ

一部のコーダーは依然としてprintステートメントを使用してデバッグしています。なぜならその概念は難しく、pdbの使用には神経を要するからです。 PyCharmのpythonデバッグGUIはプロセスを視覚化することで、デバッガを使いやすくしています。 簡単に使い始めることができ、主なデバッグ機能に簡単に移行できます。

どこでもデバッグ

もちろん、PyCharmはお使いのローカルコンピューターで実行中のコードをデバッグできます。お使いのシステムのPython、virtualenv、Anaconda、またはConda envのいずれの環境でも構いません。 PyCharm Professional Editionでは、Dockerコンテナ内、VM内、またはSSH経由でリモートホスト上で実行しているコードのデバッグもできます。

テンプレート内でデバッグ PROのみ

テンプレートで作業する際には、バグがテンプレートに忍び込む場合があります。 内部で何が起こっているのかを把握できない場合、このようなバグの解決は非常に困難になる可能性があります。 PyCharmのデバッガを使用することで、DjangoとJinja2のテンプレートにブレークポイントを設定し、これらの問題を簡単に修正できます。

注意:テンプレートをデバッグするには、先にテンプレート言語を設定してください。

JavaScript Proのみ

最新のウェブプロジェクトにはJavaScriptが含まれているため、最新のPython IDEではJavaScriptもデバッグできる必要があります。 PyCharm Professionalエディションには、WebStorm由来の非常に優れたJavaScriptデバッガが付属しています。 ブラウザに組み込まれたJSとNodeJSの両方がJavaScriptデバッガによってサポートされています。

TDDでのデバッグ

テスト駆動型開発(TDD)では、テストを書いている間に調査が行われます。 このデバッガを使用し、調査中のコンテキストにブレークポイントを設定すると調査に役立ちます。

TDDでのデバッグ

この調査はテストコード内、またはテスト中のコード内で実施できます。これはDjangoの統合テストに非常に役に立ちます(DjangoはPyCharm Professional Editionのみがサポートしています)。 テストケースでクエリの結果を確認するには、ブレークポイントを使用してください。

コードの修正は不要

PDBは素晴らしいツールですが、コードの修正を必要とします。このため、あなたのgitリポジトリに`pdb.set_trace()`の呼び出しを誤ってチェックインしてしまう可能性があります。

コードの振る舞いを確認

ブレークポイント

どんなデバッガにもブレークポイントはありますが、非常に用途の広いブレークポイントを備えているのは一部のデバッガのみです。 最終的にバグが発生するループ文に到達するまでに、「continue」を何度もクリックした経験はありませんか? PyCharmの条件付きブレークポイントを使用すれば、もうその必要はありません。

コードを実行し、特定の変数の値を確認することだけが目的の場合もあります。 コードを中断しないようにPyCharmのブレークポイントを設定できるだけでなく、メッセージをログに記録することもできます。

例外が発生すると、一日が台無しになってしまう可能性があります。そのため、PyCharmのデバッガは例外の発生箇所でブレークできるようにしています。それら例外の発生元をすべて把握していなくても構いません。

デバッグ作業を管理できるようにするため、PyCharmには概要ウィンドウが備わっています。そこで、すべてのブレークポイントを確認できるだけでなく、チェックボックスで一部のブレークポイントを無効にすることもできます。 また、必要になるまで、一時的にすべてのブレークポイントをミュートすることもできます。

一目でわかる変数値

PyCharmがブレークポイントに達するとすぐに、変数値がすべてコード内にインライン表示されます。 最後にブレークポイントに到達してから変更された値を確認しやすくするため、変更された値がハイライトされます。

ウォッチ

ウォッチを追加して変数ビューをカスタマイズできます。 単純なものでも複雑なものでも、見たいものを正確に見ることができます。

コードの管理

コードの視覚的なステップ実行

コードの振る舞いを確認したい場合、ブレークポイントをあらゆる場所に設定する必要はありません。 コードをステップ実行して、何が起きるのかを正確に追跡できます。

カスタムコードの実行

場合によっては、変数を特定の値に強制すると最も簡単に状況を再現できます。 PyCharmは、何かを素早く変更するための「評価式」と、さらに細かい制御を行えるコンソールの両方を提供しています。 このコンソールでは、ipythonシェルがインストールされていればそれを使うこともできます。

速度

PDBよりも高速

Python 3.6のデバッグに関しては、PyCharmのデバッガが市場最速のデバッガです。 PDBよりもさらに高速です。 つまり、開発中にいつでもコードをデバッガで実行でき、必要に応じて簡単にブレークポイントを追加できます。 PyCharmからCythonによる高速化をインストールするかどうかを尋ねられたときには、必ず「Install」をクリックしてください。