【问题标题】:Django ImportErrorDjango 导入错误
【发布时间】:2011-08-18 05:34:59
【问题描述】:

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

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

a.py里面我有以下导入

from ..models import Something

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

ImportError: cannot import name Something

这里是 setup.py:

from distutils.core import setup

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

【问题讨论】:

    标签: python django importerror python-import


    【解决方案1】:

    原来是循环导入错误。 models.py 正在导入 a.pya.py 正在导入 models.py

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

    【讨论】:

    • 我自己也遇到过这个问题,我只是将 import 语句放在需要 a.py 的函数中,但这似乎很恶心。你的解决方案是什么?
    【解决方案2】:

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

    【讨论】:

    • 是的,我在/submodule1/ 中都有__init__.py,但它仍然给我ImportError
    猜你喜欢
    • 2015-02-02
    • 2014-05-30
    • 2014-11-22
    • 2012-01-04
    • 2012-12-13
    • 2016-03-06
    • 2015-10-23
    • 2013-02-10
    • 1970-01-01
    相关资源
    最近更新 更多