RaspberryPi4にVisualStudioCodeを入れてみたがお世辞にも軽いとは言えなかったのでWindows環境からリモートデバックできないのか!?
と思ったのでやってみたメモ。その3
その1、その2を見てない人は見たほうが吉
想定してること
今回の想定では、
・Windows10のVSCodeでソースコードを書く
・Windows10のVSCodeでデバック
・ラズパイ上のpythonのソースコードはラズパイにsambaをインストールし、sambaの共有フォルダ上に置きWindows10から編集できるようにする
・sambaの共有フォルダは「/home/samba/」
・セキュリティは今回考えない
今回は
やっとリモートデバックをする
方法
1.ラズパイにptvsdをインストールする
ptvsdはVisual Studio Code用のPythonのリモートデバッグツールらしい。
(Python Tools for Visual Studio)
sudo pip install ptvsd
上のコマンド実行。実行結果は以下。
pi@SHIMUSHU:~ $ sudo pip install ptvsd Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Collecting ptvsd Downloading https://files.pythonhosted.org/packages/44/5b/fa477e4fd8e62c722febdc52462d7b037a77aa963c3e400a8 e90e8f0d2c0/ptvsd-4.3.2-py2.py3-none-any.whl (4.9MB) 100% |????????????????????????????????| 4.9MB 79kB/s Installing collected packages: ptvsd Successfully installed ptvsd-4.3.2
入りました。ptvsdのバージョンは4.3.2ですね。
2.Windows10のVSCodeに「launch.json」を作成
「デバック」→「構成を開く」をクリック
一番上の「Python・・・」をクリック
3.「launch.json」を書き換える
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"pathMappings":[{
"localRoot": "${workspaceFolder}",
"remoteRoot": "/home/samba",
}],
"port": 3000,
"host": "SHIMUSHU"
}
]
}
「launch.json」を上記に書き換え。
元の「launch.json」には"pathMappings"はないが書き足す。"remoteRoot"はその1で作ったsambaのラズパイから見た共有フォルダ、ポートは3000、hostはラズパイの名前、ラズパイの名前でダメな場合はIPアドレスを書く。
4.リモートデバックをしたいプログラムを書く
VSCodeで「test.py」というファイル名で以下プログラムを書く。ソースはこちらのを拝借しました。(少し変えてあります)。ただprintで連続表示しているだけのプログラム。
#!/usr/bin/env python # -*- coding: utf-8 -*- def main():
import ptvsd ## リモートマシンからの接続を許可する。 ptvsd.enable_attach(address=('0.0.0.0', 3000)) ## デバッガの接続を待つ。 ptvsd.wait_for_attach() print("hello world") print("hello world2") print("hello world3") print("hello world4") print("hello world5") if __name__ == '__main__': main()
import ptvsd
ptvsd.enable_attach(address=('0.0.0.0', 3000))
ptvsd.wait_for_attach()
5.SSHでラズパイにログインし、VSCodeで作った「test.py」を実行
上のように待ちの状態になる。cd /home/samba/
python test.py
6.VSCodeにブレイクポイントを設定し、デバックを実行
7.プログラムがブレイクポイントで止まる
その他
他にもっと効率の良い方法があるのかも?まぁ動いたからヨシとする。