【问题标题】:Spyder IDE complaining about unable to detect undefined namesSpyder IDE 抱怨无法检测到未定义的名称
【发布时间】:2018-10-30 13:08:04
【问题描述】:

在运行 Python 3.5 的 Spyder IDE 中使用 Windows 10。我在__init__.py 文件中看到以下抱怨unable to detect undefined names

但是,__init__.py 文件似乎与所有其他文件位于同一文件夹中。

那么它为什么抱怨呢?我试图删除前面的前导点,但它仍然抱怨。请给我一些指点。

【问题讨论】:

  • 只是因为*而抱怨。希望您明确说明要从中导入的名称...

标签: python python-3.x import python-import spyder


【解决方案1】:

您的 IDE 在抱怨,而不是 Python。当您执行from simple import * 时,您导入了simple 公开的所有内容。通常不建议这样做,因为它会污染全局命名空间并可能隐式覆盖现有对象。

您会收到警告而不是错误,因为这种行为并不总是不好的。拥有一个从子模块公开对象的__init__.py 文件是一种非常常见的模式。只要您了解潜在的风险,就不要发出警告:

from .input import *  # NOQA

如果您的模块不公开很多对象,只需按名称导入它们:

from .input import A, B, C

这有助于让 Python 代码分析工具更好地理解您的代码并警告您潜在的问题。

【讨论】:

  • 非常感谢。这就说得通了。 .
  • NOQA是什么意思?
【解决方案2】:

我遇到了同样的问题, 星号。 我找到了要调用它们的模块,如 Blender

所示

解决了

通过模块名称更改星号

找出有冲突的名字

当您将它们相加时,错误将被消除

感谢您的 cmets,他们帮助我解决了我遇到的问题

【讨论】:

    猜你喜欢
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2014-09-03
    相关资源
    最近更新 更多