2016-08-03 3 views
1

У меня был рабочий мезонинный проект, настроенный с помощью apache и mod_wsgi. Я попытался добавить приложение в проект и перезапустить apache, и вдруг проект выдает ошибку даже после отмены изменений. Получение же ошибку, когда я пытаюсь запустить Python manage.py проверить:Django Mezzanine ImportError: Нет модуля с именами приложений

Traceback (most recent call last): 
    File "manage.py", line 14, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line 
    utility.execute() 
    File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 284, in execute 
    self.validate() 
    File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 310, in validate 
    num_errors = get_validation_errors(s, app) 
    File "/usr/lib/python2.7/dist-packages/django/core/management/validation.py", line 34, in get_validation_errors 
    for (app_name, error) in get_app_errors().items(): 
    File "/usr/lib/python2.7/dist-packages/django/db/models/loading.py", line 196, in get_app_errors 
    self._populate() 
    File "/usr/lib/python2.7/dist-packages/django/db/models/loading.py", line 75, in _populate 
    self.load_app(app_name, True) 
    File "/usr/lib/python2.7/dist-packages/django/db/models/loading.py", line 97, in load_app 
    app_module = import_module(app_name) 
    File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py", line 40, in import_module 
    __import__(name) 
    File "/usr/local/lib/python2.7/dist-packages/mezzanine/boot/__init__.py", line 16, in <module> 
    from django.apps import apps 
ImportError: No module named apps 

Путь к Джанго: «/usr/local/lib/python2.7/dist-packages/django», и у него есть папка с именем «apps» и «init .py» файл существует внутри папки.

Затем я создал совершенно новый проект антресоли и выполнил проверку python manage.py и получил ту же ошибку. Это означает, что ни один мезонинный проект не работает. Я пробовал обновлять и переустанавливать django и mezzanine, но не использовать. С другой стороны, простой проект django работает нормально. Кажется, что есть проблема с мезонином. Я рассмотрел другие связанные вопросы, но не смог решить проблему. Любая помощь приветствуется. Заранее спасибо.

+1

Ошибка самообслуживания 'django.apps' не имеет модуля' apps' (у него есть 'config' и' registry'). Вы должны быть уверены, что вы хотите импортировать. _May be this_ 'из django.apps import AppConfig'. – kapilsdv

+0

Спасибо за ответ. Эта строка 'из django.apps import apps' существует во многих файлах внутри мезонинного каталога. Я даже попытался удалить или изменить эту строку, но файлов слишком много, и смена их создает некоторые другие ошибки. –

+0

@KapilSachdev 'apps' является атрибутом в' django/apps/__ init __. Py', см. [This] (https://github.com/django/django/blob/4e64e3bb6e96a50b057bc1144fba3efdee7dfc10/django/apps/__init__.py). @OP Какую версию Django вы используете? – knbk

ответ

1

Вы говорите, что у вас есть папка с именем apps в вашей установке Django, но трассировка показывает, что она выполняет код, который был удален в версии 1.7, той же версии, которая ввела django.apps. Вероятно, ваша установка повреждена и имеет файлы из разных версий.

Удалите Django из вашей установки Python и полностью удалите папку /usr/local/lib/python2.7/dist-pacakges/django/. Затем переустановите версию Django, совместимую с вашей версией Mezzanine.

Кажется, что вы установили Django в свою глобальную установку Python. Это может легко вызвать такие проблемы, когда несколько проектов должны использовать разные версии пакетов python. Рекомендуется использовать virtual environment для управления требованиями к вашим проектам в изолированной среде и предотвращения таких конфликтов.

+0

Спасибо. Я удалил django и mezzanine, удалил все папки и установил только мезонин, который сам установил все требования, включая django. И, наконец, это сработало. –