Visual Studio CodeをMayaと繋げてデバックする方法(debugpy編)
概要
他の記事で、[MayaCode]を使用したリモートデバッグの方法を説明いたしました。
本記事では、[debugpy]を利用する方法を説明いたします。
結論
debugpyを利用して、リモートデバックをするには、以下の手順が必要です。
- vscodeのlaunch.jsonを設定する
- debugpyをinstallする
- mayaのuserSetup.pyを用意する
では、それぞれ詳しく見ていきましょう。
0. テスト用のフォルダを作成する
この過程は、テスト用のディレクトリを作るためのものなので
不要な方は読み飛ばしていただいて、かまいません。
今回は、mayaのscriptフォルダを使ってみます。
mayaのscriptフォルダに以下の通り、フォルダとファイルを作成します。
//Documents/maya/script
|- remotedebug_test(folder)
|-remotedebug_test.py
remotedebug_test.pyの中身は以下の通りです。
print('remotedebug test')
1. launch.jsonを作成する
まずは、vscodeの設定です。
- サイドバーの再生マークに虫がついたアイコン[実行とデバック]をクリックします
- create a launch.jsonfileをクリックします
- Select a debug configurationというテキストエディタが立ち上がるので、Remote Attachを選択
- localhostと出てくるので、127.0.0.1と入力して、Enterを押す
- テキストエディタに[5678]と打たれているので、何もせずEnterを押す
- 下記のように書いてある、launch.jsonが出来上がると思います
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Remote Attach",
"type": "python",
"request": "attach",
"connect": {
"host": "127.0.0.1",
"port": 5678
},
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "."
}
],
"justMyCode": true
}
]
}
これを、下記のように変更します。
{
"version": "0.2.0",
"configurations": [
{
"name": "Maya: Attach",
"type": "python",
"request": "attach",
"connect": {
"host": "127.0.0.1",
"port": 5678
}
}
]
}
変更出来たら、上書きしてください。
これで、vscodeの設定は終わりです。
2. debugpyをインストールする
mayaをリモートデバックするためには、debugpyを利用します。
- コマンドプロンプトを起動します
- 下記コードを入力し、Enterを押します
pip install debugpy -t %USERPROFILE%Documents\maya\(version)\scripts
インストールが完了すると、コマンドプロンプトに下記のように表示されます。
✅ scriptsフォルダ以下に、debugpyフォルダが作成されていたら完了です。
3. userSetup.pyを作成する
次は、mayaの設定をしていきます。
userSetup.pyにコードを記述することで、vscodeと繋がるように設定します。
- mayaのファイルパスが通っているフォルダ以下[C:/Users/(username)/document/maya/(version)/scripts]に、userSetup.pyファイルを作成します
- ファイルに、下記コードを記入して上書きします
import debugpy
debugpy.configure(
python='C:/Program Files/Autodesk/(MayaVesion)/bin/mayapy.exe')
debugpy.listen(5678)
- Mayaを再起動します
4. 確認
最後に、vscodeとmayaが繋がっているか、確認します。
0.で作成したスクリプトで確認します。
- vscodeを開いて、maya/scriptフォルダを選択します
- remotedebug_testを開きます
- F5を押し、debug modeにします
- MayaのscriptEditorを開きます
- scriptEditorに、0.のスクリプト(remotedebug_test.py)をimportするコードを記載します
from remotedebug_test import remotedebug_test
reload(remotedebug_test)
- scriptEditorのprePlay buttonを押します
✅ vscodeで以下の両方が、確認出来たらOKです!お疲れ様でした!
・ vscodeの左側にあるVARIABLES以下に、localsとGlobalsのプルダウンができる
・ DEBUG CONSOLEに remotedebug test と書き込まれる
ブレイクポイントの使い方
折角なので、ブレイクポイントも使ってみましょう。
ブレイクポイントを打つと、打った行の文頭で実行を止めてくれます。
- remotedebug_testを変更する
print('remotedebug test')
print('break point')
- 2行目にbreakpointを打つ
3. 4. の確認手順を行う
✅ DEBUG CONSOLEには、remotedebug testとしか出ないはずです
- 一番左にあるcontinueボタン|▷を押すと、次のbreakpointまで実行されます
こんな感じで、各ブレイクポイントまでの挙動を確認できます。
おまけ
userSetupにポートを記載していても、commandPortのコードを実行すると上書きされるようです。
元に戻すには、再起動をしないといけないのですが、
簡単なスクリプトをデバックしたいだけなら、[MayaCode]を利用するなど、場面に併せて私は使っています。
※ポートの上書きについての安全性は、知識が薄く保障出来ません。
不安な方は止めておいた方がいいと思います。
Discussion