我的Python代码中包含此代码(settings.py
位于PROJECT
目录中):
import PROJECT.settings
...
if PROJECT.settings.BASE_DIR:
...
工作正常。我想我可以改写一下:
from PROJECT import settings
...
if settings.BASE_DIR:
...
但这会产生AttributeError: 'NoneType' object has no attribute 'BASE_DIR'
我在这里错过了什么吗?
答案 0 :(得分:3)
from parent import name
格式首先在module
命名空间中查找名称(在__init__.py
中设置或在parent
模块中添加该名称的任何内容)。
在您的情况下,__init__.py
中的PROJECT
文件已将settings
设置为None
。在任何包含的模块之前找到它的名称。
import parent.name
表单只会查找包中的模块,而不会查找parent
模块中定义的名称。