1.help--->SoftWare Updates--->Find and Install...。
2.選擇 Search for new features for install,然後單擊 Next。在顯示的視窗中,選擇 new remote site。此時,會彈出一個對話方塊,要求輸入新的更新網站的名稱和連結。這裡,名稱項輸入 PyDev,當然,您也可以輸入其他的名稱;連結裡輸入http://www.fabioz.com/pydev/updates,也可以填http://pydev.sourceforge.net/updates。然後,單擊 Ok。
這樣,一個新的 PyDev 的網站就建好了,選擇該網站,然後 Finish。接下來,Eclipse 的Update Manager 將會在剛才輸入的網站中搜尋安裝包,選中搜尋出的結果 PyDev,並單擊 Next。
3.
- 閱讀許可證條款,如果接受,則可單擊 Next。進入安裝直接選取介面,使用預設設定,然後 Finish。
- Eclipse Update Manager 將下載 PyDev,您可以從 Eclipse 工作列中看到下載的進度。下載完後,顯示一個需要您確認是否安裝的介面,單擊 Install All 便開始安裝了。
安裝完後,需要重啟 Eclipse 使安裝生效。
驗證是否成功安裝 PyDev
如何才能驗證 Eclipse Update Manager 是否已經成功安裝了所需的 PyDev 外掛程式了呢?
選擇 Help->About Eclipse SDK->Plug-in Details,將會出現 About Eclipse SDK Plug-ins 視窗,該視窗裡列出了所有已經安裝了的 Eclipse 外掛程式。檢查一下在 Plug-in Id 一欄中是否至少有五個以上分別以 com.python.pydev 和 org.python.pydev 開頭的外掛程式。如果是,那麼 PyDev已經被成功安裝,否則,安裝出了一些問題,需要根據具體問題來做具體的分析。
圖 3. 驗證 PyDev 外掛程式
配置 PyDev
安裝好 PyDev 之後,需要配置 Python/Jython 解譯器,配置過程很簡單。
在 Eclipse 功能表列中,選擇 Window > Preferences > Pydev > Interpreter - (Python/Jython),在這裡配置 Python/Jython 解譯器,下面以 Python 為例介紹如何配置。
首先需要添加已安裝的解譯器。這裡,Python 安裝在 C:\Python25 路徑下。單擊 New,選擇 Python 解譯器 python.exe,開啟後顯示出一個包含很多複選框的視窗,選擇需要加入系統 PYTHONPATH 的路徑,單擊 Ok。
圖 4. 配置 PyDev
接下來,檢查一下配置的結果是否正確。
在 System PYTHONPATH 裡,檢查是否包含配置過程中加入的那些路徑。這裡列出了所有的系統所需的庫檔案夾。
另外,在 Forced builtin libs 裡,列出了 Python 的內建庫。對於 Python 而言,這樣的內建庫大約有50個,而對於 Jython 來說,則有30個左右。
這樣,Python 解譯器就配置好了。
PyDev Package Explorer
建立項目
在開展工作之前,需要建立一個新的項目。在 Eclipse 功能表列中,選擇 File > New > Project > Pydev > Pydev Project,單擊 Next。
圖 5. 建立 Pydev 項目
這時,顯示出 Pydev Project 視窗,輸入項目名稱、選擇工作路徑、選擇 Python 解譯器的版本類型並選中複選框,然後單擊 Next,進入關聯項目的視窗,如果不需要關聯其他項目,則可以直接單擊 Finish,完成項目的建立。
建立 Python 包和模組
接下來,在剛建立的項目中開始建立 Python 包和模組。
- 進入 Pydev 透視圖,在 Python Package Explorer 中,按右鍵 src,選擇 New->Pydev Package,輸入 Package 名稱並單擊 Finish,Python 包就建立好了,此時,自動產生__init__.py 檔案,該檔案不包含任何內容。
注意:如果在建立項目的時候沒有選中“Create default src folder and add it to the pythonpath”複選框,則需要通過 File > New > Other > Source Folder 手動建立一個原始碼檔案夾。
- 建立完 Pydev Package 後,按右鍵建立的包,選擇 New->Pydev Module,輸入模組名稱,單擊 Finish。這樣,Python 模組就建成了。
編輯來源程式
對於來源程式的一些基本編輯方法,就不做介紹了。下面介紹幾點 Pydev 提供的非常實用的編輯功能。
- 語法錯誤提示
Python 開發人員在建立修改程式的過程中,如果能及時發現編輯過程中出現的語法錯誤,無疑對整個項目開發的品質和進展都是非常重要的。在 Python 透視圖中,Pydev Package Explorer 中列出了項目的原始碼,雙擊其中某一個 Python 檔案,如果該檔案包含語法錯誤,錯誤會以很醒目的方式展現出來。
圖 6. Pydev 檔案語法錯誤提示
如果想把整個項目中所有包含語法錯誤的檔案顯示出來,可以從 Python 透視圖自由切換到 Java 透視圖。在 Java Package 裡,一個個醒目的小紅叉標記了所有包含語法錯誤的 Python檔案。
圖 7. Pydev 項目語法錯誤提示
- 原始碼編輯助手 (Content Assistents)
原始碼編輯助手 (Content Assistents,以下簡稱 CA),顧名思義,即用於協助開發人員編輯來源程式,它提供了諸多方便實用的功能,引導開發人員進行高效快速的項目開發。
通過快速鍵 Ctrl+1 可以啟用 CA,它支援的功能如下:
PyDev
- Move import to global scope
- Create docstring
- Assign result to new local variable (or field)
- Assign parameters to attributes
- Surround code with try..except or try..finally
PyDev Extensions
- Make import for undefined token
- Ignore error
- Don't analyze module
在安裝 PyDev 時,PyDev 和 PyDev Extensions 包都已安裝,所以 CA 的這幾大功能現在都支援。首先,先介紹如何使用 PyDev 包含的 CA 功能。
- Move import to global scope
以如下代碼為例,將游標移至 import sys 後,啟動快速鍵 Ctrl+1 啟用 CA,”Move import to global scope” 出現在標籤中,按 Enter 應用此功能。如果不想應用該功能,可以按 Esc 鍵取消。
#!/usr/bin/python –usys.path.append(“./VirtualFS”)import sys |
應用該功能後,import sys 被成功移至全域範圍內,消除了之前的錯誤。改變後的代碼如下。
#!/usr/bin/python –uimport syssys.path.append(“./VirtualFS”) |
- Create docstring
Create docstring 功能可以自動為函數添加參數註解。將游標移至如下程式碼,啟動快速鍵Ctrl+1 啟用 CA,標籤欄中出現 ”Make docstring”。
def __init__(self, dbUser, dbPswd, dbHost): |
按 Enter 應用該功能後,自動為該函數添加了參數註解。
def __init__(self, dbUser, dbPswd, dbHost): ''' @param virtualOperator: @param database: @param hostname: @param workDir: ''' |
- Assign result to new local variable (or field)
CA 還提供一種功能能夠將函數返回結果賦給新的內部變數。以函數 callMethod 為例,將游標移至 a.callMethod() 行啟用 CA。
def method (self, a): a.callMethod() |
選擇 ”Assign to field(self, callMethod)” 或者 ”Assign to local(callMethod)”,可以將a.callMethod() 結果賦給新的內部變數 self.callMethod,改變後的代碼如下。
def method (self, a): self.callMethod = a.callMethod() |
- Assign parameters to attributes
在程式編輯過程中,如果需要把函數參數賦給變數,可以使用 CA 的 Assign parameters to attributes 功能自動完成這樣的需求。將游標移至函數 m1 所在行,啟用 CA。
class Foo(object): Def m1(self, a, b): |
在標籤欄中選擇 ”Assign parameters to attributes”,自動產生兩行代碼將參數 a,b 賦給同名變數。
class Foo(object): def m1(self, a, b): self.a = a self.b = b |
- Surround code with try..except or try..finally
對可能產生異常的代碼,要進行異常捕獲,通常使用 try..except 或者 try..finally 語句來捕獲異常。選中一段代碼 print usage,啟用 CA 的 ” Surround code with try..except or try..finally”功能,可以自動對 print usage 進行異常捕獲。
import sysdef method (self, usage): try: print usage except: raise |
下面,再介紹 PyDev Extensions 包含的 CA 功能是如何被運用的。
- Make import for undefined token
以如下一段代碼為例,xmlreader 未定義,文法分析出錯。
class Test: def method(self): xmlreader |
將滑鼠移至出錯行,啟動快速鍵 Ctrl+1 啟用 CA,選擇標籤欄中的 ”Import xmlreader(xml.sax)”,自動產生一行代碼 from xml.sax import xmlreader,語法錯誤消除。
from xml.sax import xmlreader class Test: def method(self): xmlreader |
- Ignore error
仍以上述代碼為例,由於 xmlreader 沒有被定義,包含語法錯誤,在這一行啟用 CA,選擇 ”UndefinedVariable”,語法錯誤被忽略,xmlreader 後自動產生一行注釋標明 ”#@UndefinedVariable”。
class Test: def method(self): xmlreader #@UndefinedVariable |
- Don't analyze module
文法分析器可以協助顯示包含語法錯誤的代碼,但在程式編輯過程中,有時候需要刻意取消對程式的文法分析,CA 的 Don't analyze module 提供了這樣的功能。
將游標移至程式第一行,啟用 CA,選擇 ”@PydevCodeAnalysisIgnore”,自動產生一行代碼 ”#@ PydevCodeAnalysisIgnore”,忽略對程式體的文法分析。
#@PydevCodeAnalysisIgnore class Test: def method(self): xmlreader |
- Quick Outline
對特定的 Python 檔案,Pydev Extensions 提供的 Quick Outline 能最簡單快捷地擷取該檔案的組織圖,並能在該檔案中方便地查詢定位所需資訊。
在 Pydev 透視圖中,選擇 Source -> Show Quick Outline,或者使用快速鍵 Ctrl+O 啟動該功能。
Python 檔案的類、函數等組織架構便以樹狀形式被形象地展現出來。同時,Filter 提供了查詢定位的功能,可以方便地查詢所需資訊並定位到相應的程式碼片段。
圖 8. Quick Outline
- Globals Browser
Globals Browser 是 Pydev Extensions 提供的另外一種強大的查詢定位功能。它可以查詢定位整個工程內的一些定義和屬性,包括:
-
通過三種方式可以啟動該功能。
- 在 Pydev 透視圖中,從功能表列中選擇 Pydev -> Globals Browser。
圖 9. 功能表列啟動 Globals Browser
- 在Pydev 透視圖中,工具列有如下的一個小表徵圖,滑鼠移至該表徵圖上方,顯示 ”Pydev: Globals Browser” 標註。點擊該表徵圖按鈕,可以啟動 Globals Browser 功能。
圖 10. 工具列啟動 Globals Browser
- 通過快速鍵 Ctrl + Shift + T,可以快速啟動 Globals Browser 功能。
在 Filter 中輸入所要查詢的定義、變數或者屬性,Globals Browser 可以快速地定位到相應的程式碼片段。
圖 11. Globals Browser
- Hierarchy View
當某個 python 檔案包含多個類時,如何才能簡單直觀地瞭解各個類之間的依存關係?Hierarchy View 提供了這樣的功能,它能將多個類之間的層次關係以樹狀結構直觀地顯示出來。
以一段 Python 代碼為例,定義了 Super1, Super2, ToAnalyze 和 Sub1 四個類。在 Pydev透視圖中,選擇 Windows -> Show View -> Other,在彈出的 Show View 視窗中,選擇 Pydev -> Hierarchy View。按快速鍵 F4 啟用 Hierarchy View,可以看到樹狀圖中顯示出了類間的層次關係。
圖 12. 在 Hierarchy View 中顯示類的層次關係
Hierarchy View 還支援以下四個功能:
- 在層次圖中,用按一下滑鼠某個類,圖下方即顯示出該類的方法。
- 如果雙擊某個類、方法或者屬性,則會調出來源程式,進入對該類、方法或者屬性的編輯狀態。
- 在 Hierarchy View 中,按住滑鼠右鍵,並相左或向右移動滑鼠,層次圖則會相應地縮小或放大。
- 在 Hierarchy View 中,按住滑鼠左鍵移動滑鼠,層次圖則會被隨意拖動到相應的位置。
運行和調試
運行程式
要運行 Python 來源程式,有兩種方法可供選擇。下面以一段代碼 example.py 為例介紹這兩種運行方式。
- 在 Pydev Package Explorer 中雙擊 example.py,選擇 Run -> Run As -> Python Run。程式example.py 立即被運行,在控制台 Console 裡顯示出程式的執行結果。
圖 13. Python 程式及運行結果
- 在 Pydev Package Explorer 中,用滑鼠右鍵單擊 example.py,在彈出的功能表列中選擇 Run As -> Python Run。同樣,example.py 被執行,Console 中顯示程式的執行結果。
以上兩種方式是運行來源程式的基本方法。Pydev 還提供一種特有的來源程式運行功能 Run As Python Coverage,該功能不僅能顯示出程式的運行結果,而且能將程式運行過程中代碼的覆蓋率顯示出來。
要查看代碼的覆蓋率,首先需要開啟 Code Coverage Results View。在 Pydev 透視圖中,選擇 Windows -> Show View -> Code Coverage Results View。在彈出視圖的左欄中,可以看到三個按鈕,”Choose dir!”, “Clear coverage information!” 和 ”Refresh Coverage infomation”。
圖 14. Code Coverage Results View
用滑鼠左鍵單擊 ”Choose dir!”,在彈出的 Folder Selection 視窗中選擇需要啟動並執行程式所在的包,單擊 Ok。這樣,這個包中所有的來源程式便顯示在左欄中。
接下來,仍以 example.py 為例,看看 Run As Python Coverage 功能展現出的結果。選擇Run As -> Python Coverage,控制台 Console 中顯示出了程式的運行結果。切換到剛才開啟的 Code Coverage Results View 視圖,單擊左欄中的 example.py。
圖 15. 在 Code Coverage Results View 中顯示程式碼涵蓋範圍
代碼運行過程中的覆蓋情況很清楚地顯示在右欄中。
雙擊左欄中的 example.py,沒有覆蓋到的代碼便在編輯器中以醒目的錯誤標誌被標註出來。
圖 16. 以錯誤標誌顯示沒有被覆蓋到的代碼
如果關閉 Code Coverage Results View 視圖,代碼的覆蓋資訊並沒有丟失,重新開啟該視圖同樣可以顯示出這些資訊。只有通過單擊左欄的 “Clear coverage information!” 按鈕,才可以清除程式運行後得到的這些覆蓋資訊。
偵錯工具
調試是程式開發過程中必不可少的,熟練掌握調試技能是開發人員進行高效開發的前提和基礎。下面仍以 example.py 為例,介紹如何使用 Pydev 的調試功能。
調試需從添加斷點開始,有三種方式可以設定斷點。
- 雙擊編輯器中尺規欄左邊灰白的空白欄,在某行添加斷點。
圖 17. 雙擊尺規欄左邊灰白的空白欄添加斷點
- 滑鼠右鍵單擊尺規欄,在彈出的功能表列中選擇 ”Add Breakpoint” 添加斷點。
圖 18. 按右鍵尺規欄添加斷點
- 將滑鼠移至需要添加斷點的程式碼,使用快速鍵 Ctrl+F10,在彈出的功能表列中選擇 ”Add Breakpoint” 添加斷點。
添加好斷點後,選擇 Debug As -> Python Run 啟動調試器,彈出一個對話方塊,詢問是否切換到調試器透視圖,單擊 Yes,即顯示偵錯模式。
圖 19. 調試器透視圖
程式調試過程中,常用的幾個快速鍵如下:
- 單步跳入 Step Into: F5
- 單步跳過 Step Over: F6
- 單步返回 Step Return: F7
- 重新開始 Resume: F8
在控制台 Console 中,顯示出斷點之前代碼的執行結果。如果要查看某個變數的值,以變數 a 為例,可以手動在控制台中鍵入一行代碼 ”print ‘a is:’, a”,再連續按兩次 Enter 鍵,即顯示出變數的值。
圖 20. 控制台顯示變數值
在偵錯模式下,要查看錶達式的值,選中後單擊滑鼠右鍵,選擇 Watch。彈出 Expression面板,顯示出了相應的變數或運算式的值。
圖 21. Expression 面板中顯示運算式值
如果想要在滿足一定條件下已經添加的斷點才有效,可以設定斷點的屬性。在編輯器的尺規欄中單擊滑鼠右鍵,彈出的功能表列中選擇 Breakpoint Properties。在顯示的視窗中,選中複選框 ”Enable Condition”,輸入需要滿足的條件,單擊 Ok。
圖 22. 設定斷點屬性
這樣,當重新執行程式調試的時候,只有滿足條件的情況下,該斷點才有效。
總結
Pydev 結合 Ecplise 實現了如此功能強大且易用的 Python IDE,本文不能一應俱全地介紹出來,對於一些基本的功能沒有做過於詳盡的介紹,主要突出 Pydev 特有的一些功能。Pydev for Eclipse 的出現為 Python 開發人員實現高效的項目開發提供了很好的條件,該項目也在不斷的發展之中,其功能將會越來越強大。
參考資料
- Python 專題包括了可愛的 Python 系列、Python 探索系列、Python 擴充、使用 Python 進行各種應用開發等等。
- 查看 “Eclipse 推薦讀物列表”。
- 在 developerWorks 上瀏覽所有 Eclipse 內容。
- 您是 Eclipse 新手嗎?閱讀 developerWorks 文章 “Eclipse 平台入門” 以瞭解它的起源和架構,以及如何用外掛程式擴充 Eclipse。
- 查看 IBM developerWorks 的 Eclipse 項目資源,提高您的 Eclipse 技巧。
- 訪問 developerWorks 開放源碼專區,獲得豐富的 how-to 資訊、工具和項目更新,協助您用開放源碼技術進行開發,並與 IBM 產品結合使用。
關於作者
|
|
|
鄭偉芳,作者目前在 IBM Rational 部門從事 ClearCase 自動化測試工作。 |
來自: http://hi.baidu.com/ma7226087/blog/item/1bd75ad6c815042307088bb1.html from:http://apps.hi.baidu.com/share/detail/21240572