4

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

4

0 回答 0