Debugging 在Tornado应用程序中设置断点
如何在我的tornado应用程序中设置断点Debugging 在Tornado应用程序中设置断点,debugging,python-2.7,tornado,Debugging,Python 2.7,Tornado,如何在我的tornado应用程序中设置断点 我尝试了pdb,但Tornado应用程序似乎忽略了我的pdb.set_trace()命令。你将pdb.set_trace()放在哪里了。。。?这对我很有用: #!/usr/bin/python # -*- coding: utf-8 -*- import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web import pdb fro
我尝试了pdb,但Tornado应用程序似乎忽略了我的pdb.set_trace()命令。你将
pdb.set_trace()
放在哪里了。。。?这对我很有用:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import pdb
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
class IndexHandler(tornado.web.RequestHandler):
def get(self):
greeting = self.get_argument('greeting', 'Hello')
reself.write(greeting + ', friendly user!')
if __name__ == "__main__":
tornado.options.parse_command_line()
app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
pdb.set_trace()
tornado.ioloop.IOLoop.instance().start()
会议:
$ python test.py
> /home/mariusz/Dokumenty/Projekty/Testy/test.py(24)<module>()
-> tornado.ioloop.IOLoop.instance().start()
(Pdb) break 16
Breakpoint 1 at /home/mariusz/Dokumenty/Projekty/Testy/test.py:16
(Pdb) continue
> /home/mariusz/Dokumenty/Projekty/Testy/test.py(16)get()
-> self.write(greeting + ', friendly user!')
(Pdb) step
--Call--
> /usr/local/lib/python2.7/dist-packages/tornado/web.py(497)write()
-> def write(self, chunk):
(Pdb) step
> /usr/local/lib/python2.7/dist-packages/tornado/web.py(512)write()
-> if self._finished:
(Pdb) step
> /usr/local/lib/python2.7/dist-packages/tornado/web.py(516)write()
-> if isinstance(chunk, dict):
(Pdb)
$python test.py
>/home/mariusz/Dokumenty/Projekty/Testy/test.py(24)()
->tornado.ioloop.ioloop.instance().start()
(Pdb)中断16
断点1位于/home/mariusz/Dokumenty/Projekty/Testy/test.py:16
(Pdb)继续
>/home/mariusz/Dokumenty/Projekty/Testy/test.py(16)get()
->self.write(问候语+',友好用户!')
(Pdb)步骤
--召唤--
>/usr/local/lib/python2.7/dist-packages/tornado/web.py(497)write()
->def写入(自身、区块):
(Pdb)步骤
>/usr/local/lib/python2.7/dist-packages/tornado/web.py(512)write()
->如果self.\u完成:
(Pdb)步骤
>/usr/local/lib/python2.7/dist-packages/tornado/web.py(516)write()
->如果isinstance(块,dict):
(Pdb)
在将
放入上述代码中后,调试器停止运行,因为我必须轮询http://localhost:8000/
在浏览器中实际调用了RequestHandler
函数。如果使用foreman运行应用程序,则应在根项目文件夹的.env文件中设置环境变量。
在我的.env文件中设置below env变量时,没有从我的表格中打勾
pythonunbuffer=true
现在我可以在我的应用程序中设置代码断点,还可以在使用foreman运行应用程序时将输出打印到服务器日志。我实际上是在使用foreman运行我的Tornado应用程序。我猜它的工头忽略了断点。