我正在使用 PyCharm 3.1.1 IDE、Pyramid 1.4.5 Web 框架,并使用 PasteScript 1.7.5 包附带的 Web 服务器测试我的 Web 应用程序。
我将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 模块的全局范围内调用不起作用?