我正在使用PyCharm 3.1.1 IDE,Pyramid 1.4.5 Web框架,我使用PasteScript 1.7.5软件包附带的Web服务器测试我的Web应用程序。
我将pydevd.settrace()
调用放在middleware.py模块的全局范围内,但这不起作用 - 建立了与调试服务器的连接(我在PyCharm内的控制台中看到Connected to pydev debugger (build 133.881)
)但是执行卡在这一行中。这是我正在使用的代码:
import pydevd
pydevd.settrace('my.host.at.local.domain', port=21000, suspend=False, stdoutToServer=False, stderrToServer=False)
在middleware.py模块中有make_app
函数,它在我的项目的setup.py中注册为Paste的入口点,如下所示:
setup(
(...)
entry_points="""
[paste.app_factory]
main = myapp.config.middleware:make_app
(...)
"""
)
将pydevd.settrace()
调用移动到make_app
函数可以解决问题,即正在与调试服务器建立连接,并且正在执行后续代码。
但是,我想知道为什么将pydevd.settrace()
调用放在middleware.py模块的全局范围内不起作用?