vscode_python_デバッガ

 

vscodeでpythonの編集ができるように設定した後、


python内のコンソールから .pyのコードを実行する際に、


vscodeのプラグインで、その実行時に

デバッガの機能を追加できるようなものはあるのでしょうか?



はい、Visual Studio Code (VSCode)には、

Pythonのデバッグ機能を追加できる公式の拡張機能があります。  

VSCodeの**「Python」拡張機能**と

**「Debugpy」ライブラリ**を使用することで、

Pythonスクリプトをデバッグしながら実行できます。


---


## **Pythonスクリプト実行時にデバッガを追加する方法**


### **1. 必要な拡張機能とライブラリのインストール**


#### **(1) VSCodeの拡張機能をインストール**


1. **Python 拡張機能をインストール** 

 

   - VSCodeの拡張機能マーケットプレイスで「Python」と検索し、

Microsoftの「Python」拡張機能をインストールします。  


   - この拡張機能にはデバッグ機能も含まれています。


2. **Pylance (補助拡張機能) をインストール**(推奨)

  

   - Pythonのコード補完や型チェックを強化するための拡張機能です。


#### **(2) Debugpy ライブラリのインストール**


デバッグ機能をスクリプト内に追加したい場合、

`debugpy` ライブラリをインストールします。


```sh


pip install debugpy


```


---


## **2. VSCodeのデバッガを使って実行する方法**


### **(方法1) F5キーでデバッグ実行**


1. `.py` ファイルを開く


2. **F5キー** を押す

(または、`Ctrl + Shift + D` → 

「デバッグと実行」→ 「Pythonファイルを実行」)


3. **デバッガが起動**し、

ブレークポイントを設定した位置で一時停止できる


---


## **3. Pythonスクリプト内でデバッガを有効化する方法**


デバッガをコードの特定の場所で起動したい場合、

以下のように `debugpy` を使います。


```python

import debugpy


# デバッガの接続を待機(リモートデバッグ用)


debugpy.listen(("localhost", 5678))

print("Debugger is waiting for connection...")

debugpy.wait_for_client()  # クライアント接続を待つ

debugpy.breakpoint()  # ここでデバッガが停止する


print("デバッグ開始")

```


この状態で、VSCodeで「デバッグ」→「アタッチ」を選択すると、

スクリプト内でデバッグが開始されます。


---


## **4. その他の便利なデバッグ設定**

### **(方法2) `launch.json` でカスタムデバッグ設定を作成**


VSCodeの「.vscode/launch.json」ファイルに以下を追加すると、

特定の設定でデバッグ実行できます。


```json


{


  "version": "0.2.0",

  

  "configurations": [

  

    {

      "name": "Python: デバッグ実行",

      "type": "python",

      "request": "launch",

      "program": "${file}", // 現在のファイルをデバッグ

      "console": "integratedTerminal",

      "justMyCode": false

  

    }

  ]

  

}


```

設定後、F5キーでデバッグを開始できます。


---


## **まとめ**


- **「Python」拡張機能**をインストールすると、デバッグ機能が追加される。


- `debugpy` をスクリプト内で使用すれば、Pythonコンソールからデバッグが可能。


- **F5キーを押すだけ**で、デバッガ付きで実行できる。


- `launch.json` を設定すれば、詳細なデバッグオプションをカスタマイズできる。


これで、VSCodeでPythonコードをデバッグしながら実行できます!🚀



コメント