繁体   English   中英

“从 a 导入 b”不起作用,但我可以导入 a 然后使用 ab

[英]"from a import b" not working, but I can import a and then use a.b

概述

from elasticsearch import Elasticsearch不起作用

import elasticsearch
e = elasticsearch.Elasticsearch(...)

确实有效。

迪茨

我正在尝试使用 AWS 在 python 中使用一个简单的 Elasticsearch 客户端(在 Amazon linux e3 机器上使用 ssh)。 我正在复制的代码在这里 我无法按照指南中的说明导入 Elasticsearch 类。

使用from elasticsearch import Elasticsearch给了我错误: ImportError: cannot import name 'Elasticsearch'

我打开了python3 cli来检查它。 如果我from elasticsearch import E和 tab-complete 输入,我会得到以下建议: EOFError( Ellipsis EnvironmentError( Exception( 。但是from elasticsearch import Ellipsis给了我ImportError: cannot import name 'Ellipsis'

如果我输入import elasticsearch ,那么在下一行elasticsearch. 并点击选项卡自动完成,我得到了我期望的全部范围( Elasticsearch(RequestsHttpConnection(等)。

我认为这与它的安装方式/位置有关。

我最初使用pip3 install elasticsearch --user安装它。 我卸载了它( pip3 uninstall elasticsearch )并返回到 python cli。 from elasticsearch import E仍然给我EOFError( Ellipsis EnvironmentError( Exception( on the tab-complete, but from elasticsearch import Ellipsis ModuleNotFoundError: No module named 'elasticsearch' from elasticsearch import Ellipsis ModuleNotFoundError: No module named 'elasticsearch'现在返回ModuleNotFoundError: No module named 'elasticsearch' ,就像import elasticsearch

不太确定发生了什么。 我没有将其标记为elasticsearch,因为它可能是用户错误:P

  • which python3 :/usr/bin/python3
  • which pip3 : ~/.local/bin/pip3
  • pip3 --version :来自 /home/ec2-user/.local/lib/python3.6/site-packages/pip (python 3.6) 的 pip 18.1

我的问题是我将我的文件命名为与我试图从中导入的模块相同的东西 - elasticsearch.py 正如 user2357112 所说,我被不正确的自动完成所困扰。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM