我有一个 Pyramid 应用程序,其中也有一些 Twisted 代码,所以我想使用 twistd 为应用程序提供服务,用一块石头杀死两只鸟。
这是我的 .tac 文件:
from twisted.web.server import Site
from twisted.web.wsgi import WSGIResource
from twisted.internet import reactor
from twisted.application import internet, service
import os
from pyramid.paster import get_app, setup_logging
config='/path/to/app/production.ini'
config = os.path.abspath(config)
port = 8888
application = get_app(config, 'main')
# Twisted WSGI server setup...
resource = WSGIResource(reactor, reactor.getThreadPool(), application)
factory = Site(resource)
service = internet.TCPServer(port, factory)
service.setServiceParent(application)
为了运行它,我使用了:
twistd -y myApp.tac
我收到错误消息,告诉我 get_app() 方法没有返回可以以这种方式使用的对象。例如:
"Failed to load application: 'PrefixMiddleware' object has no attribute 'addService'"
使用 twistd 运行 Pyramid 应用程序的最佳方式是什么?