神秘的“无法导入名称”例外

时间:2013-11-26 13:03:49

标签: python django celery django-celery django-cms

我有一个芹菜tasks.py模块,它从./manage.py shell命令内部导入时运行,但是当我直接从bash导入它时:

DJANGO_SETTINGS_MODULE="config.settings" python -c "from app.news.tasks import parse_feeds; parse_feeds()" 

提出:

  

ImportError:无法导入名称标题。

我在两种模式下检查了sys.path并且它们是相同的(除了与IPython无关的特定包)。

我应该提一下,我有另一个在两种模式下运行的任务模块。

编辑:这是我的匿名终端输出,了解更多详情:

(PROJECT)USER@HOST:~/projects/PROJECT/src$ DJANGO_SETTINGS_MODULE="config.settings" python -c "from app.news.tasks import parse_feeds; parse_feeds()"
/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/django/conf/urls/defaults.py:3: DeprecationWarning: django.conf.urls.defaults is deprecated; use django.conf.urls instead
  DeprecationWarning)

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "app/news/tasks.py", line 10, in <module>
    from .models import NewsEntry
  File "app/news/models.py", line 5, in <module>
    from cms.models.fields import PlaceholderField
  File "/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/cms/models/__init__.py", line 10, in <module>
    from .permissionmodels import *
  File "/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/cms/models/permissionmodels.py", line 7, in <module>
    UserModel = get_user_model()
  File "/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 127, in get_user_model
    user_model = get_model(app_label, model_name)
  File "/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/django/db/models/loading.py", line 230, in get_model
    self._populate()
  File "/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/django/db/models/loading.py", line 75, in _populate
    self.load_app(app_name)
  File "/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/django/db/models/loading.py", line 96, in load_app
    models = import_module('.models', app_name)
  File "/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/djangocms_text_ckeditor/models.py", line 6, in <module>
    from djangocms_text_ckeditor.utils import plugin_tags_to_id_list, replace_plugin_tags
  File "/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/djangocms_text_ckeditor/utils.py", line 6, in <module>
    from cms.plugins.utils import downcast_plugins
  File "/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/cms/plugins/utils.py", line 11, in <module>
    from cms.utils.moderator import get_cmsplugin_queryset
  File "/home/USER/projects/PROJECT/local/lib/python2.7/site-packages/cms/utils/moderator.py", line 2, in <module>
    from cms.models import PageModeratorState, CMSPlugin, Title
ImportError: cannot import name Title

修改2 :直接导入自定义User模型,而不是原始get_user_model(),从而制定解决方法。我知道这不是pythonic但是我很着急。

1 个答案:

答案 0 :(得分:1)