概要
いつも通りPythonのコードを書き,バグったのでF5を押してデバックをしてみたが,動かなかった.
色々なコードを試した結果,標準入力(私はinput()で止まった)があるとそこで止まってしまう.
結論(うまく直せた)
VSCodeのPython拡張機能(ms-python.python)が悪さをしているっぽい.
この拡張機能のバージョンを落とすとこの問題は解決できる.
修正前: 2020.8.101144 (12 August 2020)
修正後: 2020.7.1 (22 July 2020)
詳細
何が起きたのか
f5キーを押してデバッグすると標準入力(input())で入力(下の図であれ「a」)を受け付けてくれずフリーズした.
本来であれば「ba」と表示され9行目のブレークポイントで止まるはずだが...
実行環境
PC
MacBook Air (13-inch, 2017)
Catalina 10.15.3
VSCode
バージョン: 1.48.0
コミット: db40434f562994116e5b21c24015a2e40b2504e6
日付: 2020-08-13T08:03:27.059Z (3 日前)
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Darwin x64 19.3.0
試したこと
私の場合は拡張機能が悪さしていたが参考のために試したことを残しておく
-
拡張機能のバージョンダウン
-
launch.jsonのconsole部分の変更(今回は関係なかった)
拡張機能のバージョンダウン
launch.jsonの変更
最終的は私の設定はこんな感じ
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
}
]
}
なぜ拡張機能のバージョンを落とすに至ったか
今回VSCodeのデバッガがうまく動かなくなった際に色々調べたが,拡張機能に触れているものはなかった.なぜ私が拡張機能のバージョンを落とそうとしたかといえば,VSCodeの更新があった際に表示されるレポートがあったからだ.これのおかげでそういえば最近Python周りでアップデートがあったなと気がつくことができ,拡張機能の変更Logを見て,Debug周りに変更がありまさかと思い,バージョンダウンをした.
まとめ
デバッグはよく使う機能のでとりあえず動くようになってよかった.
今回vscodeを開くと出てくる更新があった場合レポートを表示する設定にしてあったことが幸いした.
今回はその場しのぎでバージョンを下げたが,拡張機能の更新Logを見るとDebug機能周りだと,
「Added "pythonArgs" to debugpy launch.json schema. 」とかかれているのでここの設定をいじって上げるといいかもしれない.拡張機能の最新版で動くようになったらまた記事を更新しようと思う.