Ошибка импорта taggit при использовании django с zinnia

У меня есть приложение django, в котором я пытаюсь использовать django-taggit и блог zinnia, ниже мои настройки и код

структура каталогов

test_app
   apps
     app_one
         __init__.py
         views.py
         forms.py   
         urls.py
         models
             taggit_custom.py    
     app_two
   settings
     local_settings.py
   manage.py

local_settings.py

INSTALLED_APPS = (
   'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'south',
    'taggit',
    'zinnia',
)

taggit_custom.py

from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.conf import settings
from taggit.models import TaggedItem

class CustomModel_one(models.Model):
    ......
    ......

Итак, исходя из приведенного выше, я пытаюсь использовать django-zinnia-blog для своего сайта в качестве блога, но я хочу использовать django-taggit вместо tagging, и просто попробовал использовать taggit, поэтому установил taggit от pip install django-taggit

Но когда я попытался использовать приложение taggit, как указано выше, например from taggit.models import TaggedItem, отображается ошибка ниже

Примечание. Фактически нет импорта из модуля taggit, например

from taggit.models import TaggedItem
from taggit.managers import TaggableManager
from taggit.forms........ etc.,

работают, хотя приложение установлено (также проверено pip freeze и есть taggit :))

результат

Validating models...

Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x9902e8c>>
Traceback (most recent call last):
  File "/home/user/Envs/zinnia/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 92, in inner_run
    self.validate(display_num_errors=True
  ......
  ......
 File "/home/user/name/virtualenvironment/apps/test_app/models/taggit_custom.py", line 4, in <module>
    from taggit.models import TaggedItem
ImportError: No module named models

Итак, может ли кто-нибудь сообщить мне, почему импорт taggit не работает, хотя taggit был установлен?

Отредактировано

Также, когда я попробовал что-то вроде ниже

(Внутри виртуального окружения)

import taggit
print dir(taggit.models)

результат

['Aggregate', 'AutoField', 'Avg', 'BLANK_CHOICE_DASH', 'BLANK_CHOICE_NONE', 'BigIntegerField', 'BooleanField', 'CASCADE', 'CharField', 'CommaSeparatedIntegerField', 'Count', 'DO_NOTHING', 'DateField', 'DateTimeField', 'DecimalField', 'DictWrapper', 'EmailField', 'F', 'Field', 'FieldDoesNotExist', 'FileField', 'FilePathField', 'FloatField', 'ForeignKey', 'GenericIPAddressField', 'IPAddressField', 'ImageField', 'ImproperlyConfigured', 'IntegerField', 'Manager', 'ManyToManyField', 'ManyToManyRel', 'ManyToOneRel', 'Max', 'Min', 'Model', 'NOT_PROVIDED', 'NullBooleanField', 'ObjectDoesNotExist', 'OneToOneField', 'OneToOneRel', 'PROTECT', 'PositiveIntegerField', 'PositiveSmallIntegerField', 'ProtectedError', 'Q', 'QueryWrapper', 'SET', 'SET_DEFAULT', 'SET_NULL', 'SlugField', 'SmallIntegerField', 'StdDev', 'SubfieldBase', 'Sum', 'TextField', 'TimeField', 'URLField', 'Variance', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'aggregates', 'base', 'capfirst', 'clean_ipv6_address', 'connection', 'constants', 'copy', 'curry', 'datetime', 'decimal', 'deletion', 'exceptions', 'expressions', 'fields', 'force_text', 'forms', 'get_app', 'get_apps', 'get_model', 'get_models', 'is_iterator', 'loading', 'manager', 'math', 'options', 'parse_date', 'parse_datetime', 'parse_time', 'permalink', 'proxy', 'query', 'query_utils', 'register_models', 'related', 'settings', 'signals', 'six', 'smart_text', 'sql', 'tee', 'timezone', 'total_ordering', 'unicode_literals', 'validators', 'warnings', 'wraps']

Итак, из вышесказанного, работает / установлен ли taggit? и почему он показывает ошибку, когда я пробовал from taggit.models import TaggedItem?


person Shiva Krishna Bavandla    schedule 29.08.2013    source источник
comment
Вы можете это сделать? import sys; print sys.path А посмотреть, можно ли увидеть taggit в списке?   -  person Paco    schedule 29.08.2013
comment
да, я могу увидеть файл с яйцом, как '/home/user/Envs/zinnia/local/lib/python2.7/site-packages/django_taggit-0.10-py2.7.egg', также, кстати, я использую virtualenv и установил в нем все необходимые приложения   -  person Shiva Krishna Bavandla    schedule 29.08.2013
comment
У вас не было активировано виртуальное окружение при установке django-taggit; так что установите его снова в виртуальной среде.   -  person Burhan Khalid    schedule 29.08.2013
comment
да, конечно, я тоже установил в виртуальном окружении, я проверил это, набрав pip freeze, и результат будет как '/home/user/Envs/zinnia/local/lib/python2.7/site-packages/django_taggit-0.10-py‌​2.7.egg'   -  person Shiva Krishna Bavandla    schedule 29.08.2013
comment
я тоже получал ту же ошибку. Не уверен в причине, но я деактивировал свой виртуальный env и установил его в центральной установке (где установлен python). тогда он работал нормально. Но не уверен, почему django пропускает virtualenv ... может быть из-за какой-то проблемы с переменной окружения.   -  person karthik27    schedule 31.01.2015


Ответы (1)


Я знаю, что это ветка 7-летней давности. Но своим опытом делюсь впрок, может кому-то это пригодится. Я только что столкнулся с подобной проблемой. Я установил django-taggit (текущая версия - 1.3.0) в свой venv. Я добавил его в INSTALLED_APPS. Позже я попытался импортировать в свой models.py. Но он показывал ошибку импорта. Я перезапустил свой VSCode. Через пару минут, вроде 1-2 минут, исправилось автоматически. ИДК, это было странно. Может, ему нужно время, чтобы начать работать.

Итак, если вы установили его правильно (в правильном окружении), он должен работать. Подождите немного, возможно, перезапустите IDE и попробуйте еще раз.

person Abid Hasan Muin    schedule 02.09.2020