Remote Debugging
Community 版本的沒有這個功能, Professional 版本才有.
參考資料
支援兩種方式, 第一種方式稱為 using a remote interpreter, 第二種是 using python debug server.
方式一, 不需要在遠端機器安裝額外套件, 但需要遠端機器開放SSH連線.
方式二, 不需要遠端機器開放SSH連線, 但需要在遠端機器安裝額外套件.
方式二必須在遠端原始碼中加入額外程式碼來連線到本機的 python debug server, 以 OpenStack 專案的做法是將主程式命令做成一個具有 debug 模式的可開關選項, 當主程式啟動時啟動偵錯模式, 可以進一步指定 python debug server 的位置.
[ 方式二 ]
建立組態
python remote debug > ...
name : remote debug main
local host name : 192.168.1.2
port : 49488
path mapping : /Users/cclin/Desktop/python-by-pycharm=/tmp/python-by-pycharm
修改主程式 python-by-pycharm/main.py , 加入以下兩行 , 其中 192.168.1.2 是本地 IP , 49488 是本地 PORT
import pydevd
pydevd.settrace('192.168.1.2', port=49488, stdoutToServer=True, stderrToServer=True)
啟動本地的 debug server
ctrl + d
複製專案從本地到遠端
scp -r python-by-pycharm/ 192.168.120.220:/tmp/
複製 pycharm-debug.egg 從本地到遠端
scp /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg 192.168.120.220:/tmp/python-by-pycharm/
啟動遠端的主程式
export PYTHONPATH=$PWD/python-by-pycharm/pycharm-debug.egg
python python-by-pycharm/main.py
在本地IDE操作偵錯步驟
參考資料
逐步教學示範如何使用 PyCharm Professional Edition 在本機建立一個 Django 專案, 讓它跑在遠端, 然後做遠端除錯.
參考資料
- https://github.com/OpenAcademy-OpenStack/project-docs/wiki/Instructions-to-setup-Remote-Debug-with-PyCharm
- https://wiki.openstack.org/wiki/Manila/Debugging#Remote_debugging
- http://novaremotedebug.blogspot.tw/2013/12/debugging-nova-using-remote-debugger.html
- https://github.com/OpenAcademy-OpenStack/project-docs/wiki/Instructions-to-setup-Remote-Debug-with-PyCharm
- http://yikun.github.io/2016/02/23/%E4%BC%98%E9%9B%85%E5%9C%B0%E8%B0%83%E8%AF%95OpenStack/
OpenStack 專案, 例如 keystone, 的啟動程序都有一個 --pydev-debug-host 選項, 支援 using python debug server 這種遠端除錯模式.
更多關於 PyCharm Remote Debugging OpenStack