错误:'elasticsearch' 后端需要安装 'requests'。如何解决?

7 投票
3 回答
4261 浏览
提问于 2025-04-17 22:21

我在我的应用程序中运行“python manage.py rebuild_index”时遇到了问题,这个应用程序是用haystack和elasticsearch支持的。

我使用的环境是:Python 2.7,Django版本1.6.2,Haystack 2.1.0,Elasticsearch 1.0。

请看一下出现的错误:

错误追踪(最近的调用在最前面): 文件 "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 utility.execute() 文件 "/usr/lib/python2.7/site-packages/django/core/management/__init__.py",第392行,在 > execute self.fetch_command(subcommand).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行,在 execute output = self.handle(*args, **options) 文件 "/usr/lib/python2.7/site-packages/haystack/management/commands/rebuild_index.py",第15行,在 handle 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行,在 execute output = self.handle(*args, **options) 文件 "/usr/lib/python2.7/site-packages/haystack/management/commands/clear_index.py",第48行,在 handle backend = connections[backend_name].get_backend() 文件 "/usr/lib/python2.7/site-packages/haystack/utils/loading.py",第98行,在 __getitem__ 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 return 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 import(name) 文件 "/usr/lib/python2.7/site-packages/haystack/backends/elasticsearch_backend.py",第21行,在 raise MissingDependency("elasticsearch后端需要安装'requests'。") haystack.exceptions.MissingDependency: elasticsearch后端需要安装'requests'。

我已经安装了运行这些应用程序所需的所有包,但它还是在问关于requests的事,这到底是怎么回事?

3 个回答

0

使用这个命令来安装一个叫做Elasticsearch的工具,版本要在7到8之间,也就是说你可以安装7.x的版本,但不能安装8.x的版本。这个命令是用pip这个工具来执行的,pip是用来管理Python包的。

24

只需这样做

pip install pyelasticsearch
2

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

撰写回答