2009-12-14 121 views
29

有沒有任何方法可以在* nix系統中調試python腳本而不會離開vim(執行腳本,設置斷點,在watch-list中顯示變量等)?vim和python腳本調試

回答

25

使用pdb

import pdb 
def main(): 
    list = [1,2,3] 
    pdb.set_trace() 
    list = [2,3,4] 

if __name__ == '__main__': 
    main() 

現在運行使用:!python %,你會打你的斷點,並能夠在gdb交互式調試等。

+2

theres還ipdb這是一個小小的ipython喜歡,所以更多的用戶友好。 – michael 2009-12-14 22:27:24

+0

我得到[此錯誤](http://stackoverflow.com/questions/34914704/bdbquit-raised-when-debugging-python) – 2016-12-28 23:14:46

-1

這聽起來像你想使用VIM作爲Python IDE。

快速找到Google搜索thisthis示例,還有更多。

編輯:好吧,好像你可能已經搜索了比我更多的東西。

我希望別人有一些想法。

+0

我已經讀過這篇文章。那裏提到的VimPDB不適合我,每當我嘗試使用它時都會被破壞。 – varnie 2009-12-14 13:14:09

+0

確實vimpdb似乎被打破... – Oz123 2013-03-28 06:02:13

-2

從我所知道的,還有一個選擇:您可以使用Eclipse + PyDev進行項目管理,使用Vim作爲Eclipse的編輯器。這樣你可以使用兩全其美。

此外,我還沒有嘗試過,但您可以嘗試this script

0

請參閱this博客文章中的「調試」部分。它顯示瞭如何設置F7來設置斷點,Shift + F7來刪除斷點。如前所述,它也使用pdb。稍做修改,您可以使用pdb替換爲ipdbpdb使用ipython),這可以使用得更好。

+2

您提供的鏈接已損壞... – Oz123 2013-03-28 16:42:29

6

嘗試pyclewn。它允許使用vim作爲pdb的前端。您可以創建/刪除斷點,控制調試過程的流程,查看變量的值。所有來自vim的!

1

Vim和pdb-clone是我使用的組合。我使用Home - pyclewn,它提供了一個名爲pdb-clone的pdb替代品,它比vanilla pdb快得多。它通過一個插件與vim很好地集成在一起,我最欣賞的一點是它能夠處理代碼之外的斷點,而不是設置內部的痕跡,因此不會弄亂我的行號。它沒有python的監視窗口。您也可以看看vim-debug,我無法使用我現有的突出顯示設置。

1

也嘗試https://pypi.python.org/pypi/pudb - 它像pdb但更先進。包含代碼高亮顯示,堆棧顯示可用值等。不僅對於vim解決方案,而且對我來說完美無缺。

三個步驟:

安裝:

PIP安裝pudb

粘貼set_trace從pudb進口set_trace代碼

; set_trace()

運行代碼