2

我正在使用python 2.7.6falcon ubuntu 14.04web 框架并尝试运行简单的 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'
4

1 回答 1

5

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

只需重命名您的文件,它就会工作。


有关更完整的解决方案,请参见:

尝试导入与内置模块同名的模块会导致导入错误

你会想阅读解决这个问题的绝对和相对导入。采用:

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

需要使用相对导入(来自 .email import ...)来访问您自己的包。

于 2017-01-16T14:06:44.083 回答