编程语言
首页 > 编程语言> > python-AttributeError:“函数”对象没有属性“ HOST”

python-AttributeError:“函数”对象没有属性“ HOST”

作者:互联网

我的设置文件定义如下(config / settings.py):

HOST='localhost'
PORT='9001'

当我在视图中导入设置并按如下所示打印每个设置的值时,它可以正确打印(views / user.py):

from ..config import settings

print settings.HOST
print settings.PORT

但是,当我在def中使用或打印相同的值时,会出现错误(views / user.py):

from ..config import settings

print settings.HOST
print settings.PORT

@handle_error
def usersettings():
   print settings.HOST
   print settings.PORT

在上述文件中调用函数def时,出现以下错误:

ERROR:root:'function' object has no attribute 'HOST'
Traceback (most recent call last):
  File "/home/rahul/mywebapp/webapp/views/utils.py", line 36, in decorated_view
    return_value = func(*args, **kwargs)
  File "/home/rahul/mywebapp/webapp/views/utils.py", line 27, in decorated_view
    return func(*args, **kwargs)
  File "/home/rahul/mywebapp/webapp/views/user.py", line 344, in usersettings
    print settings.HOST
AttributeError: 'function' object has no attribute 'HOST'

utils.py has decorated view named handle_error

我的包裹结构如下:

mywebapp/
   run.py
   webapp/
      __init__.py
      views/
         __init__.py
         utils.py
         user.py
      config/
         __init__.py
         settings.py

仅供参考:这种用法一直工作到昨晚,突然间,由于上述错误而变得怪异.我在这里做什么错了?

编辑:

我的init.py如下:

from .utils import *
from .user import *

解决方法:

在import语句之后,可能有一个名为settings的函数已声明,或在usersettings之前导入. Python现在将名称设置识别为该功能,而不是您导入的模块.

为确保不会发生这种情况,可以在导入后直接放置所需的零件:

from ..config import settings

HOST = settings.HOST
PORT = settings.PORT

...

您以后可以在需要时访问它:

def usersettings():
    print HOST, PORT

希望这可以帮助!

标签:flask,runtime-error,python
来源: https://codeday.me/bug/20191122/2060379.html