如何修复Django 1.8中的“导入错误:没有名为搜索的模块”错误

时间:2019-08-29 08:27:26

标签: python django python-import

在腻子中运行"python manage.py makemigrations"命令时出现错误。

from dslam.views import *
  File "/opt/PortMan/portman_web/dslam/views.py", line 16, in <module>
    from django.contrib.postgres.search import SearchVector
ImportError: No module named search

运行pip install django-contrib-postgres命令时,收到以下消息:

Requirement already satisfied: equirement already satisfied: /usr/local/lib/python2.7/dist-packages (0.0.1)

2 个答案:

答案 0 :(得分:2)

pip install django-contrib-postgres将安装this,这似乎是django.contrib.postgres的独立摘录,通常是完整django安装的一部分。根据{{​​3}},它不提供django.contrib.postgres,也不应该提供,因为它不是完整的django installation。我建议只安装django

pip uninstall  django-contrib-postgres
pip install django

然后您就可以完成from django.contrib.postgres.search import SearchVector

答案 1 :(得分:1)

django.contrib.postgres.search是在Django 1.10中添加的,因此您不能将其与django-contrib-postgres(这是Django 1.9的反向端口)一起使用。

请注意,Django 1.8的寿命已结束多年,并且不安全。您应该升级到最新的Django 1.11.X LTS,或者更好地升级到Python 3和最新的Django 2.2.X LTS。