2013-06-10 1 views

ответ

2

Если вы используете приложение с помощью мастера, вы должны установить переменную окружения в .env-файле в корневую папку проекта. Установка переменной env в моем файле .env сделала тик.

PYTHONUNBUFFERED = истинный

Теперь я могу установить код точки останова в моем приложении, а также распечатать вывод логов сервера при запуске приложения с помощью бригадира.

1

Где вы положили 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) 

После ввода continue в выше кода отладчик остановился, потому что я должен был опрашивать http://localhost:8000/ в браузере, чтобы иметь RequestHandler функцию на самом деле называется.

+0

Я использую Foreman для запуска своего приложения Tornado. Я думаю, его Форман, который игнорирует точки разрыва. –

Смежные вопросы