Симптомы:
Не удалось импортировать tinycomm.views. Ошибка была: ни один модуль не назвал модели
Строка кода:
from tinycomm.models import *
Структура проекта:
/tinycomms
/tinycomm
models.py
views.py
etc.
/other apps.
На Mac OS X в разработке Я могу это исправить, поместив tinycomms.tinycomm.models, а затем в другом месте появляется другая похожая ошибка. Я начал работать над разработкой, изменив около 10 путей к моделям и формам в приложении (многие оставались такими же, как tinycomm.module), меняя путь каждый раз, когда он падал.
Я загрузил на рабочий сервер Ubuntu и столкнулся с той же проблемой, только полное имя не решает проблему.
Это приложение работало отлично в течение нескольких месяцев, и единственное серьезное изменение, о котором я могу подумать, - это установить Aptana Jaxer на Mac OS X, но так как проблема также существует в производстве, я не уверен это проблема.
Другим важным изменением было изменение имени папки приложения с «web» на «tinycomm», но с полным исправлением пути в процессе разработки оно работало, поэтому я не уверен, что причина тоже.
Вот список вещей, которые я пробовал:
- Все файлы, которые он не может найти, находятся там, где они должны быть
- init .py везде, где должно быть
- добавлены пути к везде / home / project_dir, / home / project_dir / tinycomms, / home / project_dir / tinycomms / tinycomm
- также пытался удалить все эти пути
- Попытался убрать все приложения одно за другим - изменились модули, на которые он жаловался, но основной
No module named x
остался прежним.
- удалено все промежуточное ПО и т. Д.
- Обновлен до Django 1.2
Вот полный вывод:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8004/
Django Version: 1.2 alpha 1
Python Version: 2.5.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'tinycomms_tagging',
'tinycomm']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django_authopenid.middleware.OpenIDMiddleware')
Traceback:
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/handlers/base.py" in get_response
90. request.path_info)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/urlresolvers.py" in resolve
222. sub_match = pattern.resolve(new_path)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/urlresolvers.py" in resolve
129. return self.callback, args, kwargs
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/urlresolvers.py" in _get_callback
138. raise ViewDoesNotExist, "Could not import %s. Error was: %s" % (mod_name, str(e))
Exception Type: ViewDoesNotExist at /
Exception Value: Could not import tinycomm.views. Error was: No module named models
Любые предложения о том, что попробовать дальше, с благодарностью получены!
Содержимое tinycomm / init .py:
from django.utils.translation import ugettext as _
from tinycomms_tagging.managers import ModelTaggedItemManager, TagDescriptor
VERSION = (0, 3, 'pre')
class AlreadyRegistered(Exception):
"""
An attempt was made to register a model more than once.
"""
pass
registry = []
def register(model, tag_descriptor_attr='tags',
tagged_item_manager_attr='tagged'):
"""
Sets the given model class up for working with tags.
"""
if model in registry:
raise AlreadyRegistered(
_('The model %s has already been registered.') % model.__name__)
registry.append(model)
# Add tag descriptor
setattr(model, tag_descriptor_attr, TagDescriptor())
# Add custom manager
ModelTaggedItemManager().contribute_to_class(model,
tagged_item_manager_attr)