以twistd而不是python运行

时间:2018-04-11 13:55:21

标签: python pycharm twisted autobahn twistd

我需要调试我扭曲的应用程序。我正在使用pycharm,根据我的理解,我可以使用--no-daemon选项在twistd中启动我的应用程序,以便逐步执行代码。

我有以下代码来启动服务器。

def main():
    log.startLogging(sys.stdout)

    contextFactory = ssl.DefaultOpenSSLContextFactory(os.environ['SSLKEY'],
                                                     os.environ['SSLCERT'])
    factory = WebSocketServerFactory(u"wss://0.0.0.0:8080")
    factory.protocol = MyServerProtocol
    resource = WebSocketResource(factory)

    root = create_root()

    saml_manager = SamlManager()
    saml_manager.init_app(root)

    root.putChild(b"ws", resource)

    site = Site(root)

    reactor.listenSSL(8080, site, contextFactory)
    reactor.run()


if __name__ == '__main__':
    main()

我看到twistd有-y选项,但我无法让它运行我的应用程序。

我的目录树如下。

.
├── app
│   ├── __init__.py
│   ├── auth.py
│   ├── certs
│   └── index.html
├── run.py
├── saml
│   └── settings.json
└── venv
    ├── bin
    ├── include
    ├── lib
    └── pip-selfcheck.json

7 directories, 6 files

我一直在运行应用程序,执行调用main()函数的run.py。

如何在命令行中使用twistd启动此应用程序,以便我可以调试应用程序?

作为参考,我引用How debuging twisted application in PyCharm来尝试调试pycharm中扭曲的应用程序。

如果有更好的方法,我可以在请求中设置断点,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:0)

无视这个问题。我显然有一个糟糕的装饰器,导致重定向循环,也阻止我调试。一旦我删除了装饰器,我就能像平常那样进行调试。