Ответ 1
Вы можете запустить приложение WSGI вне uWSGI для разработки и отладки.
Однако иногда это невозможно, например, если ваше приложение использует функции API uWSGI.
Насколько я знаю, вы не можете использовать "Attach to Process" из PyCharm, потому что ваше приложение WSGI работает в uWSGI, и нет видимых процессов Python. Удаленная отладка работает как шарм.
-
Найдите файлы
pycharm-debug*.egg
в вашем дистрибутиве PyCharm. Например, OSX можно найти в/Applications/PyCharm.app/Contents
-
Скопируйте
pycharm-debug-py3k.egg
рядом с вашим флеш-приложением или скопируйтеpycharm-debug.egg
, если вы используете Python 2.7 -
В PyCharm создайте конфигурацию "Удаленная отладка Python" в диалоговом окне "Run/Debug Configurations". В этом примере я использую
localhost
и порт4444
. В этом диалоговом окне отобразится соответствующая строкаpydevd.settrace(...)
. -
Добавьте следующий код в ваше приложение:
import sys sys.path.append('pycharm-debug-py3k.egg') # replace by pycharm-debug.egg for Python 2.7 import pydevd # the following line can be copied from "Run/Debug Configurations" dialog pydevd.settrace('localhost', port=4444, stdoutToServer=True, stderrToServer=True)
-
В PyCharm запустите сеанс удаленной отладки. Консоль PyCharm должна отображать следующую строку:
Waiting for process connection...
-
Запустите приложение из uWSGI, как обычно. Он должен быть прикреплен к отладчику, а консоль PyCharm должна отображать:
Connected to pydev debugger (build 139.711)
-
Ваше приложение должно сломаться в строке
pydevd.settrace(...)
. Затем вы можете продолжить и использовать отладчик PyCharm как обычно (точки останова и т.д.)