Python &引用;从「;导入的工作方式不同
我的Python代码中有这段代码(Python &引用;从「;导入的工作方式不同,python,Python,我的Python代码中有这段代码(settings.py位于项目的目录中): 这很好用。我想我可以改写成这样: from PROJECT import settings ... if settings.BASE_DIR: ... 但这给出了一个AttributeError:“NoneType”对象没有属性“BASE\u DIR” 我在这里遗漏了什么吗?来自父级的导入名称格式首先在模块名称空间中查找名称(在\uuuu init\uuuuuuuuuuuuupy中设置,或者在父级模块中添加该名
settings.py
位于项目的目录中):
这很好用。我想我可以改写成这样:
from PROJECT import settings
...
if settings.BASE_DIR:
...
但这给出了一个AttributeError:“NoneType”对象没有属性“BASE\u DIR”
我在这里遗漏了什么吗?来自父级的导入名称
格式首先在模块
名称空间中查找名称(在\uuuu init\uuuuuuuuuuuuupy
中设置,或者在父级
模块中添加该名称的任何内容)
在您的情况下,项目
中的\uuuu init\uuuuu.py
文件已将设置
设置为无
。在任何包含的模块之前都可以找到该名称
import parent.name
表单将只查找包中的模块,而不查找在parent
模块中定义的名称。来自父导入名称的格式首先查找模块
命名空间中的名称(在\uuuu init\uuuuuuuuupy
或任何将该名称添加到父模块的内容中设置)
在您的情况下,项目
中的\uuuu init\uuuuuuupy
文件已将设置
设置为无
。在任何包含的模块之前都可以找到此名称
import parent.name
表单将只查找包中的模块,而不查找在parent
模块中定义的名称。请注意,如果这是Django(看起来是这样的)您应该始终通过django.conf导入设置中的导入设置,而不是直接从您的项目导入设置。@DanielRoseman谢谢。我现在正在尝试部署我的网站,但时间紧迫。我稍后会更新代码以更正。好吧,除此之外,这解决了您的问题,因此您可能应该现在就进行。这不会影响您的工作我的问题。我得到了同样的错误。注意,如果这是Django(看起来是这样的)您应该始终通过django.conf导入设置中的导入设置,而不是直接从您的项目导入设置。@DanielRoseman谢谢。我现在正在尝试部署我的网站,但时间紧迫。我稍后会更新代码以更正。好吧,除此之外,这解决了您的问题,因此您可能应该现在就进行。这不会影响您的工作x我的问题。我得到了相同的错误。谢谢,虽然\uuu init.py\uuuu
基本上是空的,但我估计还有一些其他的东西(我正在使用Django)这将它设置为None
。我一直认为这两个是相同的,但显然不是。谢谢,虽然\uuu init.py\uuu
基本上是空的,但我估计还有一些其他东西(我正在使用Django)将它设置为None
。我一直认为这两个是相同的,但显然不是。
from PROJECT import settings
...
if settings.BASE_DIR:
...