首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Haystack -没有名为'haystack.backends.elasticsearch5_backend‘的模块

Django Haystack -没有名为'haystack.backends.elasticsearch5_backend‘的模块
EN

Stack Overflow用户
提问于 2019-10-01 19:00:08
回答 3查看 878关注 0票数 2

我正在按照haystack http://docs.haystacksearch.org/en/master/tutorial.html#installation和search engine installation https://django-haystack.readthedocs.io/en/master/installing_search_engines.html#elasticsearch的安装说明进行操作

我已经安装了Elasticsearch 5.1.16,它被列为兼容的,并且已经将设置放入,安装指南只有Elasticsearch版本1和2的示例,但声明支持5。

所以我在设置中改成了版本5

代码语言:javascript
复制
    'default': {
        'ENGINE': 'haystack.backends.elasticsearch5_backend.Elasticsearch5SearchEngine',
        'URL': 'http://127.0.0.1:9200/',
        'INDEX_NAME': 'haystack',
    },
}

我还查看了repo,可以看到版本5在其中

但是当我启动我的服务器时,我收到了这个错误:

代码语言:javascript
复制
return _bootstrap._gcd_import(name[level:], package, level)
    ModuleNotFoundError: No module named 'haystack.backends.elasticsearch5_backend'

但是当我遍历文件夹结构时,它并没有安装版本5的文件

代码语言:javascript
复制
root@4c1197e002e8:/myapp/# ls /usr/local/lib/python3.6/site-packages/haystack/backends/
__init__.py                __pycache__/               elasticsearch2_backend.py  elasticsearch_backend.py   simple_backend.py          solr_backend.py            whoosh_backend.py

我使用的是与git repo相同的版本,其中包含5后端?

root@4c1197e002e8:/myapp/# pip freeze | grep hay django-haystack==2.8.1

编辑:它也已经安装到我安装的应用程序中了:

代码语言:javascript
复制
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.humanize',
    'haystack',
...

有没有人帮我弄清楚这里少了些什么?谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-01 20:08:11

我刚刚做了一个pip install git+https://github.com/django-haystack/django-haystack,现在version5后端就在里面了。

票数 1
EN

Stack Overflow用户

发布于 2020-05-04 09:54:35

我使用的是pipenv:

代码语言:javascript
复制
pipenv install git+https://github.com/django-haystack/django-haystack.git#egg=django-haystack

AlexW的答案的一个修改对我起作用了!

票数 1
EN

Stack Overflow用户

发布于 2019-10-01 19:13:01

您需要在已安装的应用程序中添加'haystack‘

代码语言:javascript
复制
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',

# Added.
'haystack',

# Then your usual apps...
'blog',

]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58183444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档