Python 在导入的模块中找不到名称
我的目录结构如下所示:Python 在导入的模块中找不到名称,python,Python,我的目录结构如下所示: 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 set
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'
您能告诉我如何调试这个问题吗?我认为您的路径行不通,因为您将超出Pythons搜索的范围
a.settings
是高于b.settings
的一个级别,不会被查看(Python
不会向上搜索级别-当您从mymain.py
调用所有内容时,起点在b
中)-或者移动文件,使其具有不同的名称,但位于相同的范围内(因此,它们都在b
或a
下,而不是在不同的嵌套级别下)
或者使用sys.path.append(path\u to\u模块)
更改Python路径
另一种方法是将a
和b
拆分为同一级别上的独立非嵌套文件夹,并在其上方设置mymain.py
,如下所示:
my_proj/
- mymain.py
- a/
- __init__.py
- settings.py
- b/
- __init__.py
- settings.py
并且有mymain.py
use
import b.settings as settings
您是否尝试运行
b.settings
?是否有任何错误?感谢您对python路径搜索模式的解释。