1

所以我正在使用 venv 浏览 Windows 10 上的 Falcon 教程

falcon==1.4.1
waitress==1.1.0

用户指南进展顺利,但附带:

httpd = simple_server.make_server('127.0.0.1', 8000, app)
httpd.serve_forever()

本教程目前使用两个文件:

资源.py

    import json
    import falcon

    class Resource(object):
        def on_get(self, req, resp):
            doc = {
                'images': [
                    {
                        'href': '/images/1eaf6ef1-7f2d-4ecc-a8d5-6e8adba7cc0e.png'
                    }
                ]
            }
            resp.body = json.dumps(doc, ensure_ascii=False)
            resp.status = falcon.HTTP_200

应用程序.py

import falcon
from .images import Resource
api = application = falcon.API()
images = Resource()
api.add_route('/images', images)

女服务员发起

waitress-serve --port=8000 look:app

请求

http localhost:8000/images

错误响应

错误:服务员:服务 /images Traceback 时出现异常(最近一次调用最后一次):文件“c:\users\ivan\dev\py\projects\falcon\look.venv\lib\site-packages\waitress\channel.py” ,第 338 行,服务中 task.service() 文件“c:\users\ivan\dev\py\projects\falcon\look.venv\lib\site-packages\waitress\task.py”,第 169 行,服务中self.execute() 文件“c:\users\ivan\dev\py\projects\falcon\look.venv\lib\site-packages\waitress\task.py”,第 399 行,在执行 app_iter = self.channel 中。 server.application(env, start_response) TypeError: 'module' object is not callable

任何想法/意见如何克服这个?

4

1 回答 1

4

发现了一个问题,falcon框架中的教程用waitress命令搞错了。

这是相关的 github问题

命令应该是:

waitress-serve --port=8000 look.app:api
于 2018-07-27T17:47:38.223 回答