Django ImportError

And*_*Lee 8 python django python-import importerror

我用目录结构创建了自己的Django应用程序

/appname
    __init__.py
    models.py
    /submodule1
        __init__.py
        a.py
Run Code Online (Sandbox Code Playgroud)

在里面a.py我有以下导入

from ..models import Something
Run Code Online (Sandbox Code Playgroud)

如果我/appname在我的/djangoproject文件夹中,这可以正常工作,但是当我将应用程序安装到Python的站点包(setup.py我创建了它)时,所有地狱都会破坏并且a.py无法再导入Something,并出现以下错误:

ImportError: cannot import name Something
Run Code Online (Sandbox Code Playgroud)

这是setup.py:

from distutils.core import setup

setup(name='appname',
      version='0.1',
      packages=['appname', 'appname.contrib'],
)
Run Code Online (Sandbox Code Playgroud)

And*_*Lee 9

事实证明这是一个循环导入错误.models.py正在进口a.pya.py正在进口models.py.

打破这个圈子解决了导入问题,但现在是时候弄清楚如何在Python中进行延迟评估:-)