为什么在模块的全局范围内调用pydevd.settrace()不起作用?

时间:2014-03-19 13:23:46

标签: python pydev remote-debugging pycharm paster

我正在使用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模块的全局范围内不起作用?

0 个答案:

没有答案