2011-09-15 71 views
12

我使用Notepad ++編寫和運行Python腳本。除調試外,它是一款出色的文本編輯器。有沒有辦法像在Visual Studio中那樣在Notepad ++中遍歷代碼,使用斷點,查看變量值等?使用Notepad ++調試Python代碼

回答

10

請問這樣的插件存在?從來沒聽說過。我完全同意那張紙條上的qor72。

是否可以創建這樣的插件/功能?有可能。

在做了一些快速的挖掘之後,我找到了一個看起來很有前途的插件,Python Script。簡而言之,它允許您運行可以訪問NPP模塊(文件菜單等)的Python腳本以及Scintilla Methods,其中出現可以訪問頁面上的標記等內容。

要完成這樣的壯舉,我可以看到正在闖入幾大塊任務(我覺得一個新的開源項目即將上...)

  • 使用Python腳本,整合python debugger(PDB)爲由Shashi提到。
  • 使用Scintilla的方法,增加回溯其中NPP標誌被放置
  • 重定向PDB輸出調用和處理它們,以顯示該文件停止(再次使用Scintilla的方法)。
  • 在新創建的斷點處並使用PDB確定當前名稱空間中的所有變量。把這個信息,並將其轉儲到一個CMD窗口,或者如果你想獲得幻想一些GUI與Tk/wxPython

閉幕思考創建
雖然我認爲這是可能的,以創建這樣一個插件,我將是一個相當的承諾。沿着這條線,你可能會更好地嘗試找到一個已經內置到其中的不同編輯器,只需創建宏(或任何IDE稱之爲)來添加最喜歡NPP的東西。

請注意,我是NPP的日常用戶,並已經有很多年,所以我挑釁地理解爲什麼你想擁有的功能添加到核電站。對於NPP我最喜歡的一件事是它打開和搜索文件的速度......移動到一個臃腫的IDE,IMO,對我來說不值得。

我目前的工作流程是在NPP中完成所有的編輯工作,只需雙擊運行模塊。如果它發生故障或在雜草中熄滅,我會啓動IDLE進行調試。

8

我真的很希望有人告訴我我錯了(我很想在Notepad ++中使用該功能),但Notepad ++被設計爲程序員編輯器,而不是IDE。雖然它具有許多很酷的功能,但這種調試級別不是核心工具的一部分。

npp-plugins也沒有看到任何東西。

5

我覺得python debugger 是最好的選擇,如果編輯器沒有提供設施:)

Quick guide:

from pdb import set_trace as bp 

code 
code 
bp() 
code 
code 

(Pdb)提示符下,輸入s步驟,p foo打印foo,並c到繼續執行代碼,直到遇到另一個斷點。

+0

見http://stackoverflow.com/questions/6980749/simpler-way-to-put-pdb-breakpoints-in-python-code的使用。 –

2

你有沒有想過使用科莫多。 它是開源的,並有端口的Windows,Linux和MAC(我認爲)。

這可能是一個選擇,如果你想從記事本++的用戶一些建議,看看在下面的帖子在這個非常網站:

Komodo Edit and Notepad++ ::: Pros & Cons ::: Python dev

一些核電站在這裏用戶似乎已經取得了開關蟒蛇編輯運行等..

個人不知道很多關於調試的科莫多,但因爲它是一個IDE所以會感到驚訝,如果你不能很容易地做到這一點

2

我真的不明白爲什麼Shashi's answer尚未被upvoted。對於他所提供的鏈接,提供了一種按OP要求的方式逐步執行python腳本的方法。

因此,對於所有不知道pdb模塊的人來說,在導入它之後,pdb.set_trace()函數允許人們逐步遍歷代碼區域。它和視覺工作室的調試方法非常相似。在您逐步完成代碼時,您可以輸入各種命令。

其中之一是p <expression>並且允許用戶在本地和全球範圍內的打印變量的當前狀態。

+0

它缺乏信息,並冒着死鏈接的風險。 –