在 __init__.py 中找不到引用“xxx”

2023-12-12

我在 PyCharm 中有一个项目组织如下:

-- Sources
   |--__init__.py
   |--Calculators
      |--__init__.py
      |--Filters.py
   |--Controllers
      |--__init__.py
      |--FiltersController.py
   |--Viewers
      |--__init__.py
      |--DataVisualization.py
   |--Models
      |--__init__.py
      |--Data

我的全部__init__.py,除了上面那个Sources是空白文件。我收到了很多这样的警告:

在 __init__.py 中找不到引用“xxx”

例如,我的FiltersController.py有这段代码:

import numpy.random as npr

bootstrap = npr.choice(image_base.data[max(0, x-2):x+3, max(0, y-2):y+3].flatten(), size=(3, 3), replace=True)

我收到这个警告:

在 __init__.py 中找不到引用“选择”

我在谷歌上搜索想知道这是什么意思以及我应该做什么才能在Python中正确编码。


这是pycharm中的一个错误。 PyCharm 似乎期望引用的模块包含在__all__ = []陈述。

为了正确的编码礼仪,您应该包括__all__您的模块中的声明? ..这实际上是我们听到年轻的斯波克在接受测试时回答的问题,他回答道:“这在道德上值得赞扬,但在道德上不是强制性的。”

要解决这个问题,您可以简单地全局禁用该(非常不重要)(非常有用)检查,或者针对特定函数或语句抑制它。

为此:

  • 将插入符号放在错误文本上(“选择”,来自上面的示例)
  • 调出意图菜单(默认为alt-enter,我的设置为alt-backspace)
  • 点击向右箭头打开子菜单,然后选择相关操作

PyCharm 也存在这样的小错误,但在我看来,它的好处远远超过了它的缺点。如果您想尝试其他好的 IDE,还有 Spyder/Spyderlib。

Edited:本来我以为这是专门为了检查__all__,但看起来这是更通用的“未解析的引用”检查,这可能非常有用。最好使用语句级禁用该功能,可以使用上面提到的菜单,也可以指定# noinspection PyUnresolvedReferences在语句之前的行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 __init__.py 中找不到引用“xxx” 的相关文章

随机推荐