【问题标题】:"from a import b" not working, but I can import a and then use a.b“从a导入b”不起作用,但我可以导入a然后使用a.b
【发布时间】:2019-01-21 18:30:45
【问题描述】:

概述

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 在 tab-complete 上仍然给我 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

【问题讨论】:

  • 您描述的导入行为与其本身不一致,听起来它可能来自您安装或卸载不同内容的过程中不同点的混合。
  • 不要太认真地对待自动完成的建议——Python 的默认自动完成功能不是很好。它不知道如何自动完成 from 导入。 IPython 做得更好。
  • (当我说“可能来自您的过程中安装或卸载不同的东西的不同点的混合”时,我的意思不仅仅是您说您卸载了 elasticsearch 的部分。这些部分在“Deets”部分听起来不一致。)
  • 你是对的。我看到了自动完成,它把我送到了错误的方向。我认为我的问题是我的主文件被命名为'elasticsearch.py​​' T-T 我认为这也解释了 python cli 的问题。我以为我在~ 中运行它以避免这个潜在的问题。无论如何,重命名我的初始文件后似乎可以工作。

标签: python python-3.x amazon-web-services python-module


【解决方案1】:

我的问题是我将文件命名为与我尝试从中导入的模块相同的名称 - elasticsearch.py。正如 user2357112 所说,我被错误的自动完成挂断了。

【讨论】:

    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多