症状
PyenvでPython3.6.8にした上で、VSCodeでデバッグしようとしたが、一瞬デバッグのツールバーが出ただけで動かなかった
対処法
一番楽なのはPyenvで使うPythonのバージョンを3.7.0以上に上げることです
試してないですが、pdbを使う方法も多分いけるはず(注意:バージョンに合ったドキュメントを読んでください)
追記:pdbを試したらいけました(バージョンに合ったドキュメントを読んで下さい)
さらに追記:
コメントにてVSCodeのプラグインのバージョンを落として解決する方法を教えていただきました
以前同じ問題に直面しました。
原因はこれでした。
https://github.com/microsoft/vscode-python/issues/19441
つまり、vscodeのpythonプラグインがpython3.6の対応を終了しちゃったからです。
プラグインのバージョンをv2022.8.*まで落とせば解決します。
さらに追記ここまで
他にも方法はありそうですが、具体的な方法は判明していないので書けません(理由は後述)
原因考察
完全には判明していないので考察です
だらだらと書き連ねるだけなので、上の対処法で済む人は読まなくていいと思います
まず、Pyenvに問題がありそうだと思ったので、3.6.8を再インストールしたり(治らなかった)、色々なバージョンを入れてデバッグしたりしました
すると、
バージョン | デバッガ動作 |
---|---|
3.5.4 | x |
3.6.7 | x |
3.6.8 | x |
3.7.0 | o |
となったので、3.6.8と3.7.0の間に原因がありそうだと思いました
ということで、3.7.0の新機能を見てたら、PEP 553: 組み込みの breakpoint()とあったので、多分これが原因だと思います
そこからさらに、色々調べてPython debugging in VS Code
を見るとVSCodeはdebugpyというものを使ってそうだとわかりました
分かったのはここまでです
debugpyをあれこれすればなんとかなるかもしれませんが、よくわからないので対処法に書くのはやめました
最後に
そもそも3.6は2021-12-23でサポート終了(EOL)になっていて、不具合があったところで文句なんて言えないので諦めて3.7以上を使うのが得策ですね(余談ですが、AtcoderでPyPy使ってるとPythonのバージョンが3.6.9なのでそれに合わせなければいけないのが辛い)