【发布时间】:2011-10-05 08:12:51
【问题描述】:
我有一个目录结构如下的项目:
mywebsite/
manage.py
__init__.py
myapp/
models/
__init__.py
base.py
myapp/models/base.py 包含:
class X(object):
pass
myapp/models/__init__.py 包含:
from base import X
现在,如果我使用 manage.py shell,我可以进行以下会话:
> import mywebsite.myapp.models
> import myapp.models
> mywebsite.myapp.models.X == myapp.models.X
False
但是,如果我将 myapp/models/__init__.py 更改为:
from myapp.models.base import X
然后我得到了预期的 True。
我想我在使用 manage.py shell 时缺少关于导入如何工作或 Django 如何更改路径的一些内容。
谁能解释一下?
【问题讨论】:
-
Daniel Roseman - 你说这与 Django 无关。但是,如果我启动一个正常的 python 会话(同时 CD 到 mywebsite 中)并导入 mywebsite,那么我会得到预期的导入错误。我的怀疑是当我使用 manage.py shell 时,Django 正在做一些我不理解的路径