Почему pydevd.settrace(), вызываемый в глобальной области видимости модуля, не работает?
Я использую PyCharm 3.1.1 IDE, веб-фреймворк Pyramid 1.4.5 и тестирую свое веб-приложение с помощью веб-сервера, который поставляется с пакетом PasteScript 1.7.5.
я размещен pydevd.settrace()
вызов в глобальной области модуля middleware.py, но это не работает - соединение с сервером отладки установлено (я вижу Connected to pydev debugger (build 133.881)
в консоли внутри PyCharm), но выполнение застряло в этой строке. Это код, который я использую:
import pydevd
pydevd.settrace('my.host.at.local.domain', port=21000, suspend=False, stdoutToServer=False, stderrToServer=False)
В модуле middleware.py есть make_app
функция, которая зарегистрирована в setup.py моего проекта в качестве точки входа для вставки следующим образом:
setup(
(...)
entry_points="""
[paste.app_factory]
main = myapp.config.middleware:make_app
(...)
"""
)
перемещение pydevd.settrace()
позвонить в make_app
функция решает проблему, т. е. устанавливается соединение с сервером отладки и выполняется последующий код.
Тем не менее, я хотел бы знать, почему размещение pydevd.settrace()
вызов в глобальном объеме модуля middleware.py не работает?