在安裝 PyDev 之前,要保證您已經安裝了 Java 1.4 或更高版本、Eclipse 以及 Python。接下來,開始安裝 PyDev 插件。
- 啓動 Eclipse,利用 Eclipse Update Manager 安裝 PyDev。在 Eclipse 菜單欄中找到 Help欄,選擇 Help > Software Updates > Find and Install。
- 選擇 Search for new features for install,然後單擊 Next。在顯示的窗口中,選擇 new remote site。此時,會彈出一個對話框,要求輸入新的更新站點的名稱和鏈接。這裏,名稱項輸入 PyDev,當然,您也可以輸入其他的名稱;鏈接裏輸入http://www.fabioz.com/pydev/updates,也可以填http://pydev.sourceforge.net/updates。然後,單擊 Ok。
圖 1. 新的更新站點
- 這樣,一個新的 PyDev 的站點就建好了,選擇該站點,然後 Finish。接下來,Eclipse 的Update Manager 將會在剛纔輸入的站點中搜索安裝包,選中搜索出的結果 PyDev,並單擊 Next。
圖 2. 安裝 Pydev
- 閱讀許可證條款,如果接受,則可單擊 Next。進入安裝路徑選擇界面,使用默認設置,然後 Finish。
- Eclipse Update Manager 將下載 PyDev,您可以從 Eclipse 任務欄中看到下載的進度。下載完後,顯示一個需要您確認是否安裝的界面,單擊 Install All 便開始安裝了。
安裝完後,需要重啓 Eclipse 使安裝生效。
如何才能驗證 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 之後,需要配置 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 解釋器就配置好了。
|
在開展工作之前,需要創建一個新的項目。在 Eclipse 菜單欄中,選擇 File > New > Project > Pydev > Pydev Project,單擊 Next。
圖 5. 創建 Pydev 項目
這時,顯示出 Pydev Project 窗口,輸入項目名稱、選擇工作路徑、選擇 Python 解釋器的版本類型並選中複選框,然後單擊 Next,進入關聯項目的窗口,如果不需要關聯其他項目,則可以直接單擊 Finish,完成項目的創建。
接下來,在剛創建的項目中開始創建 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 功能。
- PyDev 的 CA 功能
- Move import to global scope
以如下代碼爲例,將光標移至 import sys 後,啓動快捷鍵 Ctrl+1 激活 CA,”Move import to global scope” 出現在標籤中,按 Enter 應用此功能。如果不想應用該功能,可以按 Esc 鍵取消。
#!/usr/bin/python –u sys.path.append(“./VirtualFS”) import sys |
應用該功能後,import sys 被成功移至全局範圍內,消除了之前的錯誤。改變後的代碼如下。
#!/usr/bin/python –u import sys sys.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 sys def method (self, usage): try: print usage except: raise |
下面,再介紹 PyDev Extensions 包含的 CA 功能是如何被運用的。
- PyDev Extension 的 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. 設置斷點屬性
這樣,當重新執行程序調試的時候,只有滿足條件的情況下,該斷點纔有效。
來自: http://hi.baidu.com/%CA%D5%C1%B2%BA%AF%CA%FD/blog/item/815bc5c8b06e4c107e3e6fe4.html