PyDev for Eclipse
8/15/2010 2:36:26 PM
在安裝 PyDev 之前,要保證您已經(jīng)安裝了 Java 1.4 或更高版本、Eclipse 以及 Python。接下來(lái),開(kāi)始安裝 PyDev 插件。
- 啟動(dòng) Eclipse,利用 Eclipse Update Manager 安裝 PyDev。在 Eclipse 菜單欄中找到 Help欄,選擇 Help > Software Updates > Find and Install。
- 選擇 Search for new features for install,然后單擊 Next。在顯示的窗口中,選擇 new remote site。此時(shí),會(huì)彈出一個(gè)對(duì)話框,要求輸入新的更新站點(diǎn)的名稱和鏈接。這里,名稱項(xiàng)輸入 PyDev,當(dāng)然,您也可以輸入其他的名稱;鏈接里輸入 http://www.fabioz.com/pydev/updates ,也可以填 http://pydev.sourceforge.net/updates 。然后,單擊 Ok。
- 這樣,一個(gè)新的 PyDev 的站點(diǎn)就建好了,選擇該站點(diǎn),然后 Finish。接下來(lái),Eclipse 的Update Manager 將會(huì)在剛才輸入的站點(diǎn)中搜索安裝包,選中搜索出的結(jié)果 PyDev,并單擊 Next。
- 閱讀許可證條款,如果接受,則可單擊 Next。進(jìn)入安裝路徑選擇界面,使用默認(rèn)設(shè)置,然后 Finish。
- Eclipse Update Manager 將下載 PyDev,您可以從 Eclipse 任務(wù)欄中看到下載的進(jìn)度。下載完后,顯示一個(gè)需要您確認(rèn)是否安裝的界面,單擊 Install All 便開(kāi)始安裝了。
安裝完后,需要重啟 Eclipse 使安裝生效。
如何才能驗(yàn)證 Eclipse Update Manager 是否已經(jīng)成功安裝了所需的 PyDev 插件了呢?
選擇 Help->About Eclipse SDK->Plug-in Details,將會(huì)出現(xiàn) About Eclipse SDK Plug-ins 窗口,該窗口里列出了所有已經(jīng)安裝了的 Eclipse 插件。檢查一下在 Plug-in Id 一欄中是否至少有五個(gè)以上分別以 com.python.pydev 和 org.python.pydev 開(kāi)頭的插件。如果是,那么 PyDev已經(jīng)被成功安裝,否則,安裝出了一些問(wèn)題,需要根據(jù)具體問(wèn)題來(lái)做具體的分析。
安裝好 PyDev 之后,需要配置 Python/Jython 解釋器,配置過(guò)程很簡(jiǎn)單。
在 Eclipse 菜單欄中,選擇 Window > Preferences > Pydev > Interpreter - (Python/Jython),在這里配置 Python/Jython 解釋器,下面以 Python 為例介紹如何配置。
首先需要添加已安裝的解釋器。這里,Python 安裝在 C:/Python25 路徑下。單擊 New,選擇 Python 解釋器 python.exe,打開(kāi)后顯示出一個(gè)包含很多復(fù)選框的窗口,選擇需要加入系統(tǒng) PYTHONPATH 的路徑,單擊 Ok。
接下來(lái),檢查一下配置的結(jié)果是否正確。
在 System PYTHONPATH 里,檢查是否包含配置過(guò)程中加入的那些路徑。這里列出了所有的系統(tǒng)所需的庫(kù)文件夾。
另外,在 Forced builtin libs 里,列出了 Python 的內(nèi)置庫(kù)。對(duì)于 Python 而言,這樣的內(nèi)置庫(kù)大約有50個(gè),而對(duì)于 Jython 來(lái)說(shuō),則有30個(gè)左右。
這樣,Python 解釋器就配置好了。
![]() ![]() |
在開(kāi)展工作之前,需要?jiǎng)?chuàng)建一個(gè)新的項(xiàng)目。在 Eclipse 菜單欄中,選擇 File > New > Project > Pydev > Pydev Project,單擊 Next。
這時(shí),顯示出 Pydev Project 窗口,輸入項(xiàng)目名稱、選擇工作路徑、選擇 Python 解釋器的版本類型并選中復(fù)選框,然后單擊 Next,進(jìn)入關(guān)聯(lián)項(xiàng)目的窗口,如果不需要關(guān)聯(lián)其他項(xiàng)目,則可以直接單擊 Finish,完成項(xiàng)目的創(chuàng)建。
接下來(lái),在剛創(chuàng)建的項(xiàng)目中開(kāi)始創(chuàng)建 Python 包和模塊。
- 進(jìn)入 Pydev 透視圖,在 Python Package Explorer 中,右鍵單擊 src,選擇 New->Pydev Package,輸入 Package 名稱并單擊 Finish,Python 包就創(chuàng)建好了,此時(shí),自動(dòng)生成__init__.py 文件,該文件不包含任何內(nèi)容。
注意:如果在創(chuàng)建項(xiàng)目的時(shí)候沒(méi)有選中“Create default src folder and add it to the pythonpath”復(fù)選框,則需要通過(guò) File > New > Other > Source Folder 手動(dòng)創(chuàng)建一個(gè)源代碼文件夾。
- 創(chuàng)建完 Pydev Package 后,右鍵單擊創(chuàng)建的包,選擇 New->Pydev Module,輸入模塊名稱,單擊 Finish。這樣,Python 模塊就建成了。
對(duì)于源程序的一些基本編輯方法,就不做介紹了。下面介紹幾點(diǎn) Pydev 提供的非常實(shí)用的編輯功能。
- 語(yǔ)法錯(cuò)誤提示
Python 開(kāi)發(fā)者在創(chuàng)建修改程序的過(guò)程中,如果能及時(shí)發(fā)現(xiàn)編輯過(guò)程中出現(xiàn)的語(yǔ)法錯(cuò)誤,無(wú)疑對(duì)整個(gè)項(xiàng)目開(kāi)發(fā)的質(zhì)量和進(jìn)展都是非常重要的。在 Python 透視圖中,Pydev Package Explorer 中列出了項(xiàng)目的源代碼,雙擊其中某一個(gè) Python 文件,如果該文件包含語(yǔ)法錯(cuò)誤,錯(cuò)誤會(huì)以很醒目的方式展現(xiàn)出來(lái)。
如果想把整個(gè)項(xiàng)目中所有包含語(yǔ)法錯(cuò)誤的文件顯示出來(lái),可以從 Python 透視圖自由切換到 Java 透視圖。在 Java Package 里,一個(gè)個(gè)醒目的小紅叉標(biāo)記了所有包含語(yǔ)法錯(cuò)誤的 Python文件。
- 源代碼編輯助手 (Content Assistents)
源代碼編輯助手 (Content Assistents,以下簡(jiǎn)稱 CA),顧名思義,即用于幫助開(kāi)發(fā)者編輯源程序,它提供了諸多方便實(shí)用的功能,引導(dǎo)開(kāi)發(fā)者進(jìn)行高效快速的項(xiàng)目開(kāi)發(fā)。
通過(guò)快捷鍵 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 時(shí),PyDev 和 PyDev Extensions 包都已安裝,所以 CA 的這幾大功能現(xiàn)在都支持。首先,先介紹如何使用 PyDev 包含的 CA 功能。
- PyDev 的 CA 功能
- Move import to global scope
以如下代碼為例,將光標(biāo)移至 import sys 后,啟動(dòng)快捷鍵 Ctrl+1 激活 CA,”Move import to global scope” 出現(xiàn)在標(biāo)簽中,按 Enter 應(yīng)用此功能。如果不想應(yīng)用該功能,可以按 Esc 鍵取消。
#!/usr/bin/python –u sys.path.append(“./VirtualFS”) import sys |
應(yīng)用該功能后,import sys 被成功移至全局范圍內(nèi),消除了之前的錯(cuò)誤。改變后的代碼如下。
#!/usr/bin/python –u import sys sys.path.append(“./VirtualFS”) |
- Create docstring
Create docstring 功能可以自動(dòng)為函數(shù)添加參數(shù)注解。將光標(biāo)移至如下代碼行,啟動(dòng)快捷鍵Ctrl+1 激活 CA,標(biāo)簽欄中出現(xiàn) ”Make docstring”。
def __init__(self, dbUser, dbPswd, dbHost): |
按 Enter 應(yīng)用該功能后,自動(dòng)為該函數(shù)添加了參數(shù)注解。
def __init__(self, dbUser, dbPswd, dbHost):
'''
@param virtualOperator:
@param database:
@param hostname:
@param workDir:
'''
|
- Assign result to new local variable (or field)
CA 還提供一種功能能夠?qū)⒑瘮?shù)返回結(jié)果賦給新的內(nèi)部變量。以函數(shù) callMethod 為例,將光標(biāo)移至 a.callMethod() 行激活 CA。
def method (self, a): a.callMethod() |
選擇 ”Assign to field(self, callMethod)” 或者 ”Assign to local(callMethod)”,可以將a.callMethod() 結(jié)果賦給新的內(nèi)部變量 self.callMethod,改變后的代碼如下。
def method (self, a):
self.callMethod
= a.callMethod()
|
- Assign parameters to attributes
在程序編輯過(guò)程中,如果需要把函數(shù)參數(shù)賦給變量,可以使用 CA 的 Assign parameters to attributes 功能自動(dòng)完成這樣的需求。將光標(biāo)移至函數(shù) m1 所在行,激活 CA。
class Foo(object): Def m1(self, a, b): |
在標(biāo)簽欄中選擇 ”Assign parameters to attributes”,自動(dòng)生成兩行代碼將參數(shù) a,b 賦給同名變量。
class Foo(object): def m1(self, a, b): self.a = a self.b = b |
- Surround code with try..except or try..finally
對(duì)可能產(chǎn)生異常的代碼,要進(jìn)行異常捕獲,通常使用 try..except 或者 try..finally 語(yǔ)句來(lái)捕獲異常。選中一段代碼 print usage,激活 CA 的 ” Surround code with try..except or try..finally”功能,可以自動(dòng)對(duì) print usage 進(jìn)行異常捕獲。
import sys def method (self, usage): try: print usage except: raise |
下面,再介紹 PyDev Extensions 包含的 CA 功能是如何被運(yùn)用的。
- PyDev Extension 的 CA 功能
- Make import for undefined token
以如下一段代碼為例,xmlreader 未定義,語(yǔ)法分析出錯(cuò)。
class Test: def method(self): xmlreader |
將鼠標(biāo)移至出錯(cuò)行,啟動(dòng)快捷鍵 Ctrl+1 激活 CA,選擇標(biāo)簽欄中的 ”Import xmlreader(xml.sax)”,自動(dòng)生成一行代碼 from xml.sax import xmlreader,語(yǔ)法錯(cuò)誤消除。
from xml.sax import xmlreader class Test: def method(self): xmlreader |
- Ignore error
仍以上述代碼為例,由于 xmlreader 沒(méi)有被定義,包含語(yǔ)法錯(cuò)誤,在這一行激活 CA,選擇 ”UndefinedVariable”,語(yǔ)法錯(cuò)誤被忽略,xmlreader 后自動(dòng)生成一行注釋標(biāo)明 ”#@UndefinedVariable”。
class Test:
def method(self):
xmlreader
#@UndefinedVariable
|
- Don't analyze module
語(yǔ)法分析器可以幫助顯示包含語(yǔ)法錯(cuò)誤的代碼,但在程序編輯過(guò)程中,有時(shí)候需要刻意取消對(duì)程序的語(yǔ)法分析,CA 的 Don't analyze module 提供了這樣的功能。
將光標(biāo)移至程序第一行,激活 CA,選擇 ”@PydevCodeAnalysisIgnore”,自動(dòng)生成一行代碼 ”#@ PydevCodeAnalysisIgnore”,忽略對(duì)程序體的語(yǔ)法分析。
#@PydevCodeAnalysisIgnore class Test: def method(self): xmlreader |
- Quick Outline
對(duì)特定的 Python 文件,Pydev Extensions 提供的 Quick Outline 能最簡(jiǎn)單快捷地獲取該文件的組織結(jié)構(gòu),并能在該文件中方便地查詢定位所需信息。
在 Pydev 透視圖中,選擇 Source -> Show Quick Outline,或者使用快捷鍵 Ctrl+O 啟動(dòng)該功能。
Python 文件的類、函數(shù)等組織架構(gòu)便以樹(shù)狀形式被形象地展現(xiàn)出來(lái)。同時(shí),F(xiàn)ilter 提供了查詢定位的功能,可以方便地查詢所需信息并定位到相應(yīng)的代碼段。
- Globals Browser
Globals Browser 是 Pydev Extensions 提供的另外一種強(qiáng)大的查詢定位功能。它可以查詢定位整個(gè)工程內(nèi)的一些定義和屬性,包括:
-
- 類定義
- 方法定義
- 全局變量
- 類以及實(shí)例屬性
通過(guò)三種方式可以啟動(dòng)該功能。
- 在 Pydev 透視圖中,從菜單欄中選擇 Pydev -> Globals Browser。
- 在Pydev 透視圖中,工具欄有如下的一個(gè)小圖標(biāo),鼠標(biāo)移至該圖標(biāo)上方,顯示 ”Pydev: Globals Browser” 標(biāo)注。點(diǎn)擊該圖標(biāo)按鈕,可以啟動(dòng) Globals Browser 功能。
- 通過(guò)快捷鍵 Ctrl + Shift + T,可以快速啟動(dòng) Globals Browser 功能。
在 Filter 中輸入所要查詢的定義、變量或者屬性,Globals Browser 可以快速地定位到相應(yīng)的代碼段。
- Hierarchy View
當(dāng)某個(gè) python 文件包含多個(gè)類時(shí),如何才能簡(jiǎn)單直觀地了解各個(gè)類之間的依存關(guān)系?Hierarchy View 提供了這樣的功能,它能將多個(gè)類之間的層次關(guān)系以樹(shù)狀結(jié)構(gòu)直觀地顯示出來(lái)。
以一段 Python 代碼為例,定義了 Super1, Super2, ToAnalyze 和 Sub1 四個(gè)類。在 Pydev透視圖中,選擇 Windows -> Show View -> Other,在彈出的 Show View 窗口中,選擇 Pydev -> Hierarchy View。按快捷鍵 F4 激活 Hierarchy View,可以看到樹(shù)狀圖中顯示出了類間的層次關(guān)系。
Hierarchy View 還支持以下四個(gè)功能:
- 在層次圖中,用鼠標(biāo)單擊某個(gè)類,圖下方即顯示出該類的方法。
- 如果雙擊某個(gè)類、方法或者屬性,則會(huì)調(diào)出源程序,進(jìn)入對(duì)該類、方法或者屬性的編輯狀態(tài)。
- 在 Hierarchy View 中,按住鼠標(biāo)右鍵,并相左或向右移動(dòng)鼠標(biāo),層次圖則會(huì)相應(yīng)地縮小或放大。
- 在 Hierarchy View 中,按住鼠標(biāo)左鍵移動(dòng)鼠標(biāo),層次圖則會(huì)被隨意拖動(dòng)到相應(yīng)的位置。
![]() ![]() |
要運(yùn)行 Python 源程序,有兩種方法可供選擇。下面以一段代碼 example.py 為例介紹這兩種運(yùn)行方式。
- 在 Pydev Package Explorer 中雙擊 example.py,選擇 Run -> Run As -> Python Run。程序example.py 立即被運(yùn)行,在控制臺(tái) Console 里顯示出程序的執(zhí)行結(jié)果。
- 在 Pydev Package Explorer 中,用鼠標(biāo)右鍵單擊 example.py,在彈出的菜單欄中選擇 Run As -> Python Run。同樣,example.py 被執(zhí)行,Console 中顯示程序的執(zhí)行結(jié)果。
以上兩種方式是運(yùn)行源程序的基本方法。Pydev 還提供一種特有的源程序運(yùn)行功能 Run As Python Coverage,該功能不僅能顯示出程序的運(yùn)行結(jié)果,而且能將程序運(yùn)行過(guò)程中代碼的覆蓋率顯示出來(lái)。
要查看代碼的覆蓋率,首先需要打開(kāi) Code Coverage Results View。在 Pydev 透視圖中,選擇 Windows -> Show View -> Code Coverage Results View。在彈出視圖的左欄中,可以看到三個(gè)按鈕,”Choose dir!”, “Clear coverage information!” 和 ”Refresh Coverage infomation”。
用鼠標(biāo)左鍵單擊 ”Choose dir!”,在彈出的 Folder Selection 窗口中選擇需要運(yùn)行的程序所在的包,單擊 Ok。這樣,這個(gè)包中所有的源程序便顯示在左欄中。
接下來(lái),仍以 example.py 為例,看看 Run As Python Coverage 功能展現(xiàn)出的結(jié)果。選擇Run As -> Python Coverage,控制臺(tái) Console 中顯示出了程序的運(yùn)行結(jié)果。切換到剛才打開(kāi)的 Code Coverage Results View 視圖,單擊左欄中的 example.py。
代碼運(yùn)行過(guò)程中的覆蓋情況很清楚地顯示在右欄中。
雙擊左欄中的 example.py,沒(méi)有覆蓋到的代碼便在編輯器中以醒目的錯(cuò)誤標(biāo)志被標(biāo)注出來(lái)。
如果關(guān)閉 Code Coverage Results View 視圖,代碼的覆蓋信息并沒(méi)有丟失,重新打開(kāi)該視圖同樣可以顯示出這些信息。只有通過(guò)單擊左欄的 “Clear coverage information!” 按鈕,才可以清除程序運(yùn)行后得到的這些覆蓋信息。
調(diào)試是程序開(kāi)發(fā)過(guò)程中必不可少的,熟練掌握調(diào)試技能是開(kāi)發(fā)者進(jìn)行高效開(kāi)發(fā)的前提和基礎(chǔ)。下面仍以 example.py 為例,介紹如何使用 Pydev 的調(diào)試功能。
調(diào)試需從添加斷點(diǎn)開(kāi)始,有三種方式可以設(shè)置斷點(diǎn)。
- 雙擊編輯器中標(biāo)尺欄左邊灰白的空白欄,在某行添加斷點(diǎn)。
- 鼠標(biāo)右鍵單擊標(biāo)尺欄,在彈出的菜單欄中選擇 ”Add Breakpoint” 添加斷點(diǎn)。
- 將鼠標(biāo)移至需要添加斷點(diǎn)的代碼行,使用快捷鍵 Ctrl+F10,在彈出的菜單欄中選擇 ”Add Breakpoint” 添加斷點(diǎn)。
添加好斷點(diǎn)后,選擇 Debug As -> Python Run 啟動(dòng)調(diào)試器,彈出一個(gè)對(duì)話框,詢問(wèn)是否切換到調(diào)試器透視圖,單擊 Yes,即顯示調(diào)試模式。
程序調(diào)試過(guò)程中,常用的幾個(gè)快捷鍵如下:
- 單步跳入 Step Into: F5
- 單步跳過(guò) Step Over: F6
- 單步返回 Step Return: F7
- 重新開(kāi)始 Resume: F8
在控制臺(tái) Console 中,顯示出斷點(diǎn)之前代碼的執(zhí)行結(jié)果。如果要查看某個(gè)變量的值,以變量 a 為例,可以手動(dòng)在控制臺(tái)中鍵入一行代碼 ”print ‘a(chǎn) is:’, a”,再連續(xù)按兩次 Enter 鍵,即顯示出變量的值。
在調(diào)試模式下,要查看表達(dá)式的值,選中后單擊鼠標(biāo)右鍵,選擇 Watch。彈出 Expression面板,顯示出了相應(yīng)的變量或表達(dá)式的值。
如果想要在滿足一定條件下已經(jīng)添加的斷點(diǎn)才有效,可以設(shè)置斷點(diǎn)的屬性。在編輯器的標(biāo)尺欄中單擊鼠標(biāo)右鍵,彈出的菜單欄中選擇 Breakpoint Properties。在顯示的窗口中,選中復(fù)選框 ”Enable Condition”,輸入需要滿足的條件,單擊 Ok。
這樣,當(dāng)重新執(zhí)行程序調(diào)試的時(shí)候,只有滿足條件的情況下,該斷點(diǎn)才有效。
![]() ![]() |
Pydev 結(jié)合 Ecplise 實(shí)現(xiàn)了如此功能強(qiáng)大且易用的 Python IDE,本文不能一應(yīng)俱全地介紹出來(lái),對(duì)于一些基本的功能沒(méi)有做過(guò)于詳盡的介紹,主要突出 Pydev 特有的一些功能。Pydev for Eclipse 的出現(xiàn)為 Python 開(kāi)發(fā)人員實(shí)現(xiàn)高效的項(xiàng)目開(kāi)發(fā)提供了很好的條件,該項(xiàng)目也在不斷的發(fā)展之中,其功能將會(huì)越來(lái)越強(qiáng)大。
Pydev使用 Psyco加速
pydev速度很慢, 查詢后發(fā)現(xiàn)可以使用psyco加速, 雖然改變不是非常明顯, 但確有改變, 推薦一下.
我是Windows的系統(tǒng), 下載一個(gè)exe, 安裝一下即可.
安裝前:
pydev debugger: warning: psyco not available for debugger speedups
安裝后:
pydev debugger: starting
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
