Есть ли способ заставить pdb и Mac Terminal играть хорошо? - PullRequest
9 голосов
/ 29 апреля 2010

При отладке приложений django я использую pdb для интерактивной отладки с pdb.set_trace().

Однако, когда я изменяю файл, локальный веб-сервер django перезапускается, а затем я не вижу, что я печатаю в терминале,Я набираю reset.

Есть ли возможность, чтобы это произошло автоматически?Это может сильно раздражать, так как приходится постоянно отменять сервер выполнения, сбрасывать и перезапускать его.Мне сказали, что это не происходит в других ОС (Ubuntu), так есть ли в любом случае, чтобы это не произошло на Mac?(Я использую снежного барса).

Ответы [ 3 ]

8 голосов
/ 30 апреля 2010

ОК - у меня это работает. Я создал ~ / .pdbrc и добавил

импорт ОС
os.system ("stty sane")

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

Если я выпаду в терминал, мне все равно придется делать это вручную - но это решает необходимость выхода из runserver и сброса все время.

1 голос
/ 30 апреля 2010

Лучшее, что я нашел, это сделать сброс внутри pdb примерно так:

импорт ОС; os.system ( "сброс"); * +1004 *

1 голос
/ 29 апреля 2010

Попробуйте [q] использовать pdb перед сохранением изменений в файл. Это не позволит консоли работать на вас, но только для одного запуска pdb.set_trace ().

Вам все равно придется вернуться к старому ^ C + reset + ./manage.py runserver, когда вы забудете выйти из pdb. Одна вещь, которая может сделать сброс немного менее раздражающим, это поместить сервер сброса и выполнения в одну строку. Таким образом, сброс - это просто быстрый ^Rreset или стрелка вверх.

[ ... ]
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
^C$ reset && ./manage.py runserver
...