我的设置文件定义如下(config/setings.py):
HOST='localhost'
PORT='9001'当我导入视图中的设置并按如下方式打印每个设置的值时,它将正确地打印( view /user.py):
from ..config import settings
print settings.HOST
print settings.PORT但是,当我从def内部使用或打印相同的值时,它会产生错误(视图/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有一个名为handle_error的修饰视图
我的包装结构如下:
mywebapp/
run.py
webapp/
__init__.py
views/
__init__.py
utils.py
user.py
config/
__init__.py
settings.pyFYI:这种工作一直持续到昨晚,突然之间,它开始对上面的错误感到奇怪了。我在这里做什么不对?
编辑:
我的init.py如下:
from .utils import *
from .user import *发布于 2013-11-11 12:53:12
在import语句之后,可能有一个名为settings的函数在usersettings之前声明或导入。Python现在将名称settings识别为该函数,而不是您导入的模块。
为了确保这种情况不会发生,您可以将所需的部分直接放在导入之后:
from ..config import settings
HOST = settings.HOST
PORT = settings.PORT
...以后你可以在你喜欢的时候访问它:
def usersettings():
print HOST, PORT希望这能有所帮助!
https://stackoverflow.com/questions/19906725
复制相似问题