Remote Debugging Python with Eclipse and PyDev
原文請參閱Blog,本文新增自己的實作過程。 環境介紹
Local : Win8 + eclipse + PyDev
Remote : ubuntu + python2.7 in virtualbox
-
安裝PyDev
- 建立PyDev專案,設定python interpreter(注意要跟遠端執行的同一個minor版本)
- 安裝python interpreter
- 在Eclipse 設定 python interpreter,參考 2.3.1 Add Python Interpreter Path
-
建立專案
File -> New -> PyDev Project [PyDev Project]dialog Project name: 自己打一個 Project contents: 程式放置目錄 Interpreter: 選剛才設定Python27 Finish
- 複製pydev到遠端機器
find /Applications/eclipse/plugins -name 'org.python.pydev_*'
e.g. /Applications/eclipse/plugins/org.python.pydev_2.8.2.2013090511
將檔案放置到正確路徑 ```sh python -c "import sys from pprint import pprint as pp pp(sys.path)" ``` e.g. /usr/local/lib/python2.7/dist-packages ```sh ssh vagrant@example.dev mkdir pysrc scp -r /Applications/eclipse/plugins/org.python.pydev_2.8.2.2013090511/pysrc/* vagrant@example.dev:pysrc ssh vagrant@example.dev 'sudo cp -R pysrc/* /usr/local/lib/python2.7/dist-packages/' ssh vagrant@example.dev rm -r pysrc ```
- 設定路徑對照
在 ubuntu 編輯 /usr/local/lib/python2.7/dist-packages/pydevd_file_utils.py
PATHS_FROM_ECLIPSE_TO_PYTHON = [ (r'C:\Gitlab\xxx\rrr', r'/home/vagrant/xxx/rrr') ]
注意大小寫
- 新增程式
當 py 執行到 settrace 會中斷去連結到 eclipse 的 debug server。 譬如寫在 run.py。
在 ubuntu 執行 netstat -rn 可以知道 default gw 就是 Host(eclipse) 的IP。
# append path sys.path.append(r'/usr/local/lib/python2.7/dist-packages') import pydevd # breakpoint pydevd.settrace('10.0.2.2', port=5678, stdoutToServer=True, stderrToServer=True)
-
啟動 eclipse debug server see PyDev | Remote Debugger
- 執行python grunt serve
#重要 兩邊的程式碼一定要一樣,斷點才會有效果。