ImportError:无法导入名称泛型

Posted

技术标签:

【中文标题】ImportError:无法导入名称泛型【英文标题】:ImportError: cannot import name generic 【发布时间】:2016-05-29 00:09:53 【问题描述】:

我在 django 1.9 中使用 eav-django(entity-attribute-value)。每当我执行命令 ./manage.py runserver 时,都会出现错误:

Unhandled exception in thread started by <function wrapper at 0x10385b500>
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.egg/django/utils/autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.egg/django/core/management/commands/runserver.py", line 109, in inner_run
    autoreload.raise_last_exception()
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.egg/django/utils/autoreload.py", line 249, in raise_last_exception
    six.reraise(*_exception)
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.egg/django/utils/autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.egg/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.egg/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.egg/django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/shakil_grofers/src/django-eav/eav/models.py", line 42, in <module>
    from django.contrib.contenttypes import generic

我尝试通过添加来导入泛型:

from django.contrib.contenttypes import generic 

在models.py中。然后经过少量研究,我发现通用在 Django 1.7 中已被弃用,并且在 Django 1.9 中不再存在。谁能告诉我这个功能在 Django 1.9 中是在哪个其他库中添加的以及如何使用它?

【问题讨论】:

【参考方案1】:

django.contrib.contenttypes 模块一直是reorganized in Django 1.7。

您现在可以使用django.contrib.contenttypes.fields.GenericForeignKey 代替django.contrib.contenttypes.generic.GenericForeignKey。请参阅文档中的示例代码:

https://docs.djangoproject.com/en/1.7/ref/contrib/contenttypes/#generic-relations

【讨论】:

你能建议如何使用 eav-django 吗? 需要修改django-eav源代码,将generic.GenericForeignKeys全部替换为fields.GenericForeignKey。您还可以在存储库中向存储库发出拉取请求 :) github.com/mvpdev/django-eav 就我而言,我的项目使用 python 3,但我忘记启用虚拟环境。所以标准的python(2.7)给出了这个错误。我是愚蠢的!【参考方案2】:

此功能已移至 .models 和 .fields 模块中。 它只是被删除的特定文件;通用关系功能仍然存在,只是分成单独的文件。

【讨论】:

你能建议如何使用 eav-django 吗?【参考方案3】:

从 Python 的官方站点更新 Django.tagging 包,而不是从 Pip 源,因为 Pip 没有最新版本。

【讨论】:

以上是关于ImportError:无法导入名称泛型的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:无法导入名称 VarianceThreshold

ImportError:无法导入名称“WebClient”

ImportError:无法导入名称“AFAVSignature”

ImportError:无法导入名称“评估”(来自意外导入评估)

Django 'ImportError: 无法导入名称 url'

ImportError:导入 PCA 时无法导入名称“LatentDirichletAllocation”[关闭]