PycharmCEがDjangoプロジェクトのブレークポイントにヒットしない

Dec 24 2020

プロジェクトを適切なmanage.py場所で適切な設定で実行するように適切に構成しました。

また、確実に実行されていることがわかっているメソッドにデバッグブレークポイントを設定しています(そこにprintステートメントを配置すると、期待どおりに実行されます)。ブレークポイントは無効または条件付きではありません。

上記の実行構成を使用して[デバッグモードで実行]ボタンを押すと(このプロジェクト用に構成したのはこれだけなので、同じものであると確信しています)、次のコンソール出力が表示されます。

pydev debugger: process 38083 is connecting

Connected to pydev debugger (build 192.5728.105)
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
December 23, 2020 - 19:22:22
Django version 3.1.4, using settings 'FEArena.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

にブレークポイントを設定しようとするとmanage.py、期待どおりに機能し、「デバッグ」ボタンを押したときにトリガーされました。ただし、アプリの起動後、RESTクライアントを使用して上記のメソッドをトリガーすると、ブレークポイントが含まれているため、ブレークポイントがトリガーされず、デバッガーが起動しません。200 OKRESTクライアントで応答を受け取りますが、PyCharmはどの時点でもデバッガーを停止して実行しません。

「Gevent互換デバッグ」の設定をアドバイスする他の回答を調べ(Community Editionを使用しているため、持っていません)、.idea/プロジェクトのフォルダーを削除しようとしましたが、問題は修正されませんでした。 。他に何が原因であるのかわかりません。プログラムをデバッグしたいだけです。

私のPyCharmバージョン情報は

PyCharm 2019.2 (Community Edition)
Build #PC-192.5728.105, built on July 23, 2019
Runtime version: 11.0.3+12-b304.10 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.7
GC: ParNew, ConcurrentMarkSweep
Memory: 4029M
Cores: 8
Registry: 
Non-Bundled Plugins: com.karateca.jstoolbox, mobi.hsz.idea.latex, net.seesharpsoft.intellij.plugins.csv, nl.rubensten.texifyidea, org.intellij.plugins.markdown

ブレークポイントがトリガーされない原因は何ですか?これを修正するにはどうすればよいですか?プログラムの他の部分をデバッグするには、ブレークポイントが必要です。

回答

2 SLDem Jan 03 2021 at 02:49

万が一、サーバーをコンソールで実行していますか?その場合は、コンソールで実行されているサーバーを停止し、PyCharmでサーバーを再起動してみてください

1 C.Cooney Jan 03 2021 at 01:35

以前、executor.submitを呼び出していたときに、PyCharmで同様の問題が発生していました。予想されるデバッグ動作を再度呼び出すために、コードの結果を要求する行を挿入する必要がありました。コードがスレッド化されている場合は、そこから始めたいと思うかもしれません。

future = executor.submit(control, channel) # spawn a function control(channel)
print(f'Future result is: {future.result()}') # new line I had to add to enable debugging

編集:PyCharmで同様の動作をするのに役立つスレッドへのリンクを追加します。コンカレント.futures.ThreadPoolExecutorはエラーを出力しません

1 Henri Jan 06 2021 at 17:53

私の現在の作業構成はこれにあります:

スクリプトパスやパラメータはありません。

「デバッグ」の緑色のボタンをクリックすると、自動的に起動されるコマンドは次のとおりです。Users/.../virtualenv/bin/python /Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py --multiproc --qt-support=auto --client 127.0.0.1 --port 55583 --file /Users/.../manage.py runserver 8000

あなたはどうですか?

ShishirJha Jan 08 2021 at 03:30

こんにちは私は私の評判のためにコメントすることができないのでこの答えを書いています。たまたま、pycharmが提案し続けるcythonデバッガーツールキットをインストールしましたか?もしそうなら、私は同じ問題に直面しています。解決策は、cythonのスピードアップをなんとかして削除することです。あなたはそれをするためにこのリンクをたどることができます。

基本的には、というディレクトリに移動してファイル_pydevd_bundleを削除する必要がありpydev*.soます。これにはroot権限が必要です。それがあり、それらを削除できる場合は、おそらく機能します(cythonデバッガー拡張機能をインストールした場合)。