对象在猎鹰中没有属性 'API' 错误

object has no attribute 'API' error in falcon

我正在 ubuntu 14.04 上使用 python 2.7.6 和 falcon web 框架,并尝试 运行 简单的 hello world 程序。但是在 运行 宁这个例子时它给出了以下错误。对此有什么想法吗?

代码:

import falcon

class ThingsResource(object):
    def on_get(self, req, resp):
        """Handles GET requests"""
        resp.status = falcon.HTTP_200
        resp.body = 'Hello world!'

# falcon.API instances are callable WSGI apps
wsgi_app = api = falcon.API()

# Resources are represented by long-lived class instances
things = ThingsResource()

# things will handle all requests to the '/things' URL path
api.add_route('/hello', things)

错误:

Traceback (most recent call last):
  File "falcon.py", line 1, in <module>
    import falcon
  File "/home/naresh/Desktop/PythonFramework/falcon.py", line 10, in <module>
    wsgi_app = api = falcon.API()
AttributeError: 'module' object has no attribute 'API'

您的 python 文件是 falcon.py 所以当您调用 falcon.API() 时,您是在文件中调用方法 API(),而不是来自真正的 falcon 模块。

只需重命名您的文件即可。


如需更完整的解决方案,请参阅:

Trying to import module with the same name as a built-in module causes an import error :

You will want to read about Absolute and Relative Imports which addresses this very problem. Use:

from __future__ import absolute_import Using that, any unadorned package name will always refer to the top level package. You will then

need to use relative imports (from .email import ...) to access your own package.