Python
Django
VisualStudio

VisualStudio 2019 Preview でDjangoリモートデバッグ

たまたま上手くいったのでメモです。

[[remote host IP]]などは都度読み替えてください。

VS2019 Previewのインストールについては記載しません。

今回の環境は以下

手元の開発環境

Windows10
VisualStudio Enterprise 2019 Preview Version16.0.0 Preview1.1

リモートサーバ
CentOS7
uWSGI-2.0.17.1
Python3.6.7 (virtualenv)
Django==2.1.4
ptvsd==4.2.0

リモートサーバでの操作

DjangoがインストールされたPython仮想環境にptvsdをインストール(最新で問題なかった)

pip install ptvsd

リモートデバッグしたい任意のアプリコードに以下を追記


views.py

import ptvsd

ptvsd.enable_attach(address=('[[remote host IP]]', 5678), redirect_output=True)

....
....

def index(request): # Djangoのビューメソッド
ptvsd.break_into_debugger()
....
....


Djangoアプリを起動

デバッガが接続するための5678/tcpポートは開けておく

firewall-cmd --add-port=5678/tcp --permanent

firewall-cmd --reload

VSでの操作

メニュー->デバッグ->プロセスにアタッチ

「プロセスにアタッチ」ウィンドウで接続先をtcp://[[remote host IP]]:5678 として更新

一覧に表示されるプロセスを選択しアタッチ

break_into_debugger()メソッドの位置まで来たらVSにリモートのコードが表示され、ステップ実行できるようになる