eclipse 下安裝PyDev並匯入faster rcnn python程式碼除錯
Python在演算法研究應用非常廣泛,最近要研究faster rcnn的python程式碼,就得學習python,所以就需要一個趁手的工具來看python程式碼,否則只是用文字編譯器找程式碼實在是太影響效率了。
因為對eclipse用著很順手,所以就使用eclipse下的PyDev外掛來做python開發工具。
安裝PyDev
PyDev安裝最簡單的是線上安裝,網上有很多文章可以找到。
如果線上安裝pydev(http://www.pydev.org/updates)可能會會比較慢,而且我的兩臺電腦4個作業系統(windows/ubuntu)都要安裝,更耗時。
所以我採用dropins離線安裝方式:
直拉去這裡下載:
將zip包解壓縮後,放到eclipse/dropins
然後開啟eclipse,找到 視窗/首先項/PyDev/Interpreters/Python Interpreter/ 點選”新建”按鈕, 如下圖設定好python 直譯器,PyDev就算是安裝好了。
建立python工程匯入faster-rcnn程式碼
在eclipse如下圖點選選擇透檢視按鈕:
選擇PyDev透檢視:
工具欄上就會多一個PyDev的透檢視按鈕
點選這個按鈕進入PyDev透檢視,如下圖點選建立一個新的PyDev Project
在如下介面中選擇”從已經存在的程式碼建立原始碼連結”
如下圖新增faster-rcnn的三個python程式碼資料夾,
點選”完成”,faster-rcnn的python程式碼就完成了匯入。
為什麼要新增三個python資料夾
看看py-faster-rcnn/tools/_init_paths.py程式碼就明白了。
_init_paths.py用於初始化sys.path路徑的程式碼,在這裡把 faster-rcnn/caffe-faster-rcnn/python和faster-rcnn/lib加入了sys.path。
否則tools/下的程式是無法找到這些python 模組的。
error: unresolved import cv2
開啟python程式碼,會發現如下圖import cv2提示錯誤,顯示unresolved import,而實際執行並不會報錯
我猜這應該是PyDev的缺陷,將下圖中cv2.x86_64-linux-gnu.so 動態庫識別為一個python module
然後在python程式碼上點滑鼠右鍵選擇”Code analysis”,重新整理一遍,就OK
跟蹤除錯python程式碼
然後就像一般在eclipse下除錯程式碼一樣以除錯方式執行程式,可以一步步跟蹤程式碼了: