Django ImportError - PullRequest
       16

Django ImportError

8 голосов
/ 18 августа 2011

Я создал свое собственное приложение Django со структурой каталогов

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

Внутри a.py У меня есть следующий импорт

from ..models import Something

Это работает нормально, если у меня есть /appname внутри моей папки /djangoproject, но когда я устанавливаю приложение в пакеты сайта 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'],
)

Ответы [ 2 ]

8 голосов
/ 19 августа 2011

Оказывается, это была круговая ошибка импорта. models.py импортировал a.py, а a.py импортировал models.py.

Преодоление этого круга решило проблемы импорта, но теперь пришло время выяснить, как выполнять ленивую оценку в Python: -)

2 голосов
/ 18 августа 2011

Поместите пустой файл с именем: __init__.py в / submodule1, чтобы Python мог проанализировать его как модуль.Это должно помочь.То же самое в / appname - должен быть также __init__.py файл

...