10

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

/appname
    __init__.py
    models.py
    /submodule1
        __init__.py
        a.py

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

from ..models import Something

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

ImportError: cannot import name Something

这是 setup.py:

from distutils.core import setup

setup(name='appname',
      version='0.1',
      packages=['appname', 'appname.contrib'],
)
4

2 回答 2

11

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

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

于 2011-08-19T02:32:31.410 回答
3

将名为:的空文件__init__.py放在 /submodule1 中,以便 Python 可以将其解析为模块。它应该有帮助。/appname 中相同 - 也应该有__init__.py文件

于 2011-08-18T08:07:04.437 回答