调试我的视图函数时遇到问题,import pdb; pdb.set_trace()
放在其中,无服务器在控制台中作为> sls offline start
启动。即,发出相应的GET请求我收到以下错误:
Python: > /.../handler.py(88)get_results()
-> request_params = event.query_params
Python: (Pdb)
Python: 2019-02-20 18:37:43,648 [ERROR] | ...
Traceback (most recent call last):
...
File ".../handler.py", line 88, in get_results
...
File "/usr/lib/python3.6/bdb.py", line 51, in trace_dispatch
return self.dispatch_line(frame)
File "/usr/lib/python3.6/bdb.py", line 70, in dispatch_line
if self.quitting: raise BdbQuit
bdb.BdbQuit
Google认为问题在于无服务器进程无法从stdin读取,但我不知道如何处理这个问题。
有什么建议?
我在这里找到了一个解决方案https://stackoverflow.com/a/26975795/4388451:
在一个终端
stdout
,并写信给stdin
:
cat fifo_stdout&cat> fifo_stdinpdb
对象,并使用它:
import pdb mypdb = pdb.Pdb(stdin = open('fifo_stdin','r'),stdout = open('fifo_stdout','w')).... mypdb.set_trace()现在我可以在第一个控制台中使用pdb
了!
PS调试时使用--noTimeout
选项很有用:sls offline --noTimeout