from elasticsearch import Elasticsearch
不能正常工作。
import elasticsearch
e = elasticsearch.Elasticsearch(...)
起作用。
我试图在使用AWS的python中使用简单的Elasticsearch客户端(在Amazon Linux e3机器上ssh)。我要复制的代码是here。我无法按照指南中的说明导入Elasticsearch类。
使用from elasticsearch import Elasticsearch
会给我错误:ImportError: cannot import name 'Elasticsearch'
。
我打开python3 cli进行了检查。如果键入from elasticsearch import E
并使用制表符完成,则会得到以下建议:EOFError( Ellipsis EnvironmentError( Exception(
。但是from elasticsearch import Ellipsis
给了我ImportError: cannot import name 'Ellipsis'
。
如果我输入import elasticsearch
,然后在下一行elasticsearch.
上按Tab键以自动完成,则可以得到期望的完整范围(Elasticsearch(
,RequestsHttpConnection(
,等)。
我最初使用pip3 install elasticsearch --user
进行安装。我将其卸载(pip3 uninstall elasticsearch
)并返回到python cli。 from elasticsearch import E
仍会在制表符补全上给我EOFError( Ellipsis EnvironmentError( Exception(
,但from elasticsearch import Ellipsis
现在会返回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 答案 0 :(得分:1)
我的问题是我将文件命名为与尝试从中导入的模块相同的名称-elasticsearch.py
。如user2357112所述,我迷上了错误的自动完成功能。