Блог Синявского
  • Разделы
  • Метки
  • Все статьи

Python Django PyCharm debug

1

Python Django PyCharm debug

Всегда возникает необходимость отладки приложения, установки точек остановки (think point). Простые варианты отладки в python это print, в Django приложении можно использровать logger. Можно конечно использовать деление на ноль в нужных местах. В этом смысле PyCharm предоставляет потрясающие возможности программистам, для отладки сложных проектов.

Локальная отладка (local debug)

Обязательно настроим интерпретатор проекта

File -> Settings -> Project Interpreter -> Configure Interpreters

File -> Settings -> Django support

Ставим галочку Enable Django Support

Заполняем необходимые поля в окне

Django project root:
/home/user/Projects/my_project/project
Settings:
main_app/settings/development.py
Manage script:
manage.py

Run -> Edit Configurations -> + Django Server Ставим галочки Single instance only,No reload

Заполняем необходимые поля

Name:
local_project_run
Working directory:
/home/user/Projects/my_project/project

Все остальные поля заполнены автоматически

Теперь можно использовать Shift+F9 debug. Ставить точки остановки.

Удаленная отладка (remote python debug)

Для её работы необходимо скачать дополнение для pycharm-debug.egg или pycharm-debug-py3k.egg если этих модулей нет в директории установки PyCharm

Обязательно изменить файл manage.py, добавив в него следующие строки сразу после импорта модулей:

sys.path.append('/opt/pycharm-2.7.3/pycharm-debug.egg')
import pydevd
pydevd.settrace('localhost', port=21000, stdoutToServer=True, stderrToServer=True)

Необходимо создать конфигурацию отладки Run -> Edit Configurations -> + Python Remote Debug

Заполняем необходимые поля в окне

Name:
remote_project_debug
Local host name:
localhost
Port:
21000

Сохраняем запускаем debug: PyCharm debug console переходит в режим подключения

Далее запускаем Django проект из командной строки:

$(env): python manage.py runserver --noreload

Мы увидим в PyCharm debug console Connected.

Важно! Срабатывает один раз. Что-то меняем и снова придется переподключаться.

P.S. Пишу эту статью для друга. который не на шутку увлекся програмированием, для того, чтобы облегчить его тернистый путь. Может быть кому-то эта статья будет также полезна.



  • ← сюда
  • туда →

comments powered by Disqus

Опубликовано

10.03.2016

Обновление

17.07.2017

Категории

django

Тэги

  • cms 4
  • django 12
  • python 30

Всегда на связи

  • Блог Синявского - Ничего не переносить на завтра, это тоже проблема с прокастинацией?
  • © Алексей Синявский, по лицензии CC BY-SA если не указано иное.
  • С использованием Pelican. Тема: Elegant от Talha Mansoor