【问题标题】:Inconsitent Python error - Class works fine in terminal, but not in script不一致的 Python 错误 - 类在终端中工作正常,但在脚本中不能正常工作
【发布时间】:2021-05-09 05:33:30
【问题描述】:

我遇到了一个奇怪的错误,我不太清楚涉及通过 pip 安装的库。

我运行 pip3 install mcp9600 来安装温度传感器库,然后通过运行 python 终端、导入库并调用相关类来验证这是否按预期工作:

之后,我尝试从 .py 文件中运行完全相同的内容并得到以下错误:

我真的不太确定发生了什么或如何解决它,因为我以前从未遇到过这个问题。这是怎么回事?

【问题讨论】:

  • 您自己的文件名为mcp9600.py。重命名你的脚本。

标签: python python-3.x pip package attributeerror


【解决方案1】:

您的脚本名为mcp9600.py,因此代码import mcp9600 将脚本作为模块导入。该脚本(作为模块导入)没有任何MCP9600,因此没有AttributeError

将脚本重命名为其他名称。即使mcp9600(没有.py)也可以。吸取教训:永远不要将脚本命名为与 Python 库相同的名称;例如,永远不要将你的脚本命名为 email.pytest.py——它们会掩盖 Python 的 emailtest

【讨论】:

  • 谢谢,我真的只是想通了。我来自 C 背景,那里的事情不那么模棱两可。吸取教训,感谢您的解释!
【解决方案2】:

您的脚本文件也被命名为mcp9600.py,就像模块一样。 Python 开始在与源文件相同的目录中搜索模块,因此它会找到脚本本身而不是模块。

尝试重命名您的脚本。

【讨论】:

  • 谢谢,我也确实想通了。我不知道他们首先搜索了本地图书馆,所以现在这很有意义!
【解决方案3】:

我想通了。好像我不能调用与库名相同的python脚本!

我是新手,但还是很尴尬!

【讨论】:

  • 不用尴尬,我想任何能回答这个问题的人都会先遇到它:)
猜你喜欢
  • 1970-01-01
  • 2022-06-29
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
  • 2019-09-11
相关资源
最近更新 更多