Debugging 在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

如何在我的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 

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应用程序。我猜它的工头忽略了断点。