有沒有人在vim中使用this one來調試燒瓶應用程序。 我想要什麼: 我想設置斷點在控制器方法例如在vim中調試python燒瓶應用程序
def login():
(breakpoint)>> some code
...
...
不知何故運行燒瓶應用程序,當我如登錄表單停止發送這個斷點和調試源代碼。
謝謝。
有沒有人在vim中使用this one來調試燒瓶應用程序。 我想要什麼: 我想設置斷點在控制器方法例如在vim中調試python燒瓶應用程序
def login():
(breakpoint)>> some code
...
...
不知何故運行燒瓶應用程序,當我如登錄表單停止發送這個斷點和調試源代碼。
謝謝。
您是否知道Python debbuger?
import pdb; pdb.set_trace()
如果你使用vim,你可能會喜歡這個快捷方式,以及:您可以在代碼中使用該行的任何地方設置斷點
:ia pdb import pdb; pdb.set_trace()<ESC>
下面是我設置的相關部分是允許我在線上按F7,並獲得插入的pdb.set_trace()
行。 Shift + F7再次刪除它。調試本身發生在vim之外(在執行程序的命令行上),但從未讓我失望。
該實施需要輝煌的ipdb,但應該很容易根據需要進行修改。
〜/ vim的/文件類型插件/蟒蛇/ python.vim:
...
map <S-F7> :py RemoveBreakpoints()<CR>
map <F7> :py SetBreakpoint()<CR>
...
〜/ vim的/文件類型插件/蟒蛇/ custom.py:
...
def SetBreakpoint():
nLine = int(vim.eval('line(".")'))
strLine = vim.current.line
strWhite = re.search('^(\s*)', strLine).group(1)
vim.current.buffer.append(
(
"%(space)spdb.set_trace() %(mark)s Breakpoint %(mark)s" %
{'space': strWhite, 'mark': '#' * 30}
),
nLine - 1
)
for strLine in vim.current.buffer:
if strLine == "import ipdb as pdb":
break
else:
vim.current.buffer.append('import ipdb as pdb', 2)
vim.command('normal j1')
vim.command('write')
def RemoveBreakpoints():
nCurrentLine = int(vim.eval('line(".")'))
nLines = []
nLine = 1
for strLine in vim.current.buffer:
if strLine == 'import ipdb as pdb' or strLine.lstrip().startswith('pdb.set_trace()'):
nLines.append(nLine)
nLine += 1
nLines.reverse()
for nLine in nLines:
vim.command('normal %dG' % nLine)
vim.command('normal dd')
if nLine < nCurrentLine:
nCurrentLine -= 1
vim.command('normal %dG' % nCurrentLine)
vim.command('write')
...
您是否知道(在瓶調試模式),您可以從追蹤頁面打開瀏覽器中的調試器? – Kos 2013-03-27 12:34:23
不,我只是想在控制器方法運行應用程序設置斷點,並在斷點停止 – user1590420 2013-03-27 12:54:09
Flask使用Werkzeug調試器,我建議你試試看。 – Kos 2013-03-27 13:21:17