【问题标题】:Error: The 'elasticsearch' backend requires the installation of 'requests'. How do I fix it?错误:“elasticsearch”后端需要安装“请求”。我如何解决它?
【发布时间】:2014-04-20 03:50:37
【问题描述】:

我在 haystack 和 elasticsearch 支持的应用中运行“python manage.py rebuild_index”时遇到问题。

Python 2.7 Django 版本 1.6.2 干草堆 2.1.0 弹性搜索 1.0

请查看出现的错误:

Traceback(最近一次调用最后一次): 文件“manage.py”,第 10 行,在 execute_from_command_line(sys.argv) 文件“/usr/lib/python2.7/site-packages/django/core/management/init.py”,第 399 行,在 > execute_from_command_line 实用程序.execute() 文件“/usr/lib/python2.7/site-packages/django/core/management/init.py”,第 392 行,在 > 执行 self.fetch_command(子命令).run_from_argv(self.argv) 文件“/usr/lib/python2.7/site-packages/django/core/management/base.py”,第 242 行,在 >run_from_argv self.execute(*args, **options.dict) 文件“/usr/lib/python2.7/site-packages/django/core/management/base.py”,第 285 行,在执行中 输出 = self.handle(*args, **options) 文件“/usr/lib/python2.7/site-packages/haystack/management/commands/rebuild_index.py”,第 15 行,在句柄中 call_command('clear_index', **options) 文件“/usr/lib/python2.7/site-packages/django/core/management/init.py”,第 159 行,在 call_command return klass.execute(*args, **defaults) 文件“/usr/lib/python2.7/site-packages/django/core/management/base.py”,第 285 行,在执行中 输出 = self.handle(*args, **options) 文件“/usr/lib/python2.7/site-packages/haystack/management/commands/clear_index.py”,第 48 行,在句柄中 后端 = 连接[后端名称].get_backend() getitem 中的文件“/usr/lib/python2.7/site-packages/haystack/utils/loading.py”,第 98 行 self._connections[key] = load_backend(self.connections_info[key]['ENGINE'])(using=key) 文件“/usr/lib/python2.7/site-packages/haystack/utils/loading.py”,第 51 行,在 load_backend 返回 import_class(full_backend_path) 文件“/usr/lib/python2.7/site-packages/haystack/utils/loading.py”,第 18 行,在 import_class module_itself = importlib.import_module(module_path) 文件“/usr/lib/python2.7/site-packages/django/utils/importlib.py”,第 40 行,在 import_module 进口(名称) 文件“/usr/lib/python2.7/site-packages/haystack/backends/elasticsearch_backend.py”,第 21 行,在 raise MissingDependency("'elasticsearch' 后端需要安装 'requests'。") haystack.exceptions.MissingDependency:“elasticsearch”后端需要安装“requests”。

我已经安装了运行这些应用程序所需的所有包,但是询问请求,它是关于什么的?

【问题讨论】:

  • 顺便说一句,你是如何安装 django-haystack 的?
  • 您确定安装了 requests 吗?尝试运行pip install requests。此外,如果您没有在 virtualenv 中运行它,这可能是一个好主意,这样您就可以更好地管理依赖关系并避免项目之间的冲突。

标签: python django elasticsearch django-haystack


【解决方案1】:

只是做

pip install pyelasticsearch

【讨论】:

  • 这个技巧对我有用。上述命令安装了以下包:安装收集的包:certifi、urllib3、elasticsearch、simplejson、六、pyelasticsearch所以问题一定是由于缺少依赖项(urllib3我强烈怀疑)
【解决方案2】:

如果你只是通过 pip 安装 requests 模块,这个错误应该会消失。

【讨论】:

  • 安装了不幸的请求(甚至在 virtualenv 中卸载/重新安装以确保),但它仍然不起作用。
  • 应该是 virtualenv 的问题。确保环境已激活,否则您应该在安装 haystack 的位置安装请求。
猜你喜欢
  • 2014-11-05
  • 2021-09-10
  • 2021-12-07
  • 2020-04-24
  • 2021-12-19
  • 1970-01-01
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多