[英]cannot find name in imported module
我的目录结构如下:
a/
- b/
- __init__.py
- settings.py
- mymain.py
- settings.py
a / settings.py
#the common names
ES_HOSTS = ["localhost"]
b / settings.py:
from a.settings import *
#the names that is specific to b.settings
b / main.py
import settings
print settings.ES_HOSTS
python告诉我
AttributeError: 'module' object has no attribute 'ES_HOSTS'
您能帮我告诉我如何调试此问题吗?
我认为您的路径行不通,因为您超出了Python搜索的范围。 a.settings
高于水平b.settings
并不会被看( Python
不搜索了一个水平-并从您的通话一切mymain.py
,出发点是内b
) -无论是移动的文件,以便它的名称不同,但作用域相同(因此全部位于b
或a
,而不是不同的嵌套级别)。
或者使用sys.path.append(path_to_module)
更改Python路径。
一种替代方法是将a
和b
拆分到同一级别的单独的非嵌套文件夹中,并在mymain.py
上方mymain.py
,如下所示:
my_proj/
- mymain.py
- a/
- __init__.py
- settings.py
- b/
- __init__.py
- settings.py
并使用mymain.py
import b.settings as settings
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.