django で pdb できないときは django-pdb を install する
ssh クライアントが理由なのかは原因を特定できていないが、django 上の適当な .py ファイルにて
import pdb; pdb.set_trace() もしくは breakpoint() # python3.7 以上のみ有効
を埋め込みしても Web サーバーを立ち上げているコンソールで pdb の操作が効かない。
django-pdb を導入したら問題なく p コマンドや n コマンドを実行できた。
django-pdb の導入方法
$ cd /path/to/mydjango-project $ mkdir requirements_no_production $ echo django >> requirements_no_production/development.txt # 本番用と分けておきたいのでこうしている $ pip3 install -r requirements_no_production/development.txt
hello/views.py でデバッグする
... def index(request): import pdb; pdb.set_trace() # python3.7 以上ならば # breakpoint() でもよい
> /home/matsu/workspace/mydjango-project/hello/views.py(13)index() -> return HttpResponse('<h1>response</h1><pre>' + response.text + '</pre>') (Pdb) p response <Response [200]>
参考: