我在 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
正上方的那个都是空白文件。我收到了很多这样的警告:
Cannot find reference 'xxx' in __init__.py
例如,我的 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)
我收到了这个警告:
Cannot find reference 'choice' in __init__.py
我在谷歌上搜索,想知道这是什么意思,我应该怎么做才能在 Python 中正确编码。
最佳答案
这是 pycharm 中的一个错误。 PyCharm 似乎期望引用的模块包含在 __all__ = []
语句中。
为了正确的编码礼仪,您是否应该在模块中包含 __all__
语句? ..这实际上是我们听到年轻的 Spock 在接受测试时回答的问题,他回答说:“这在道德上值得称赞,但在道德上不是强制性的。”
要绕过它,您可以简单地全局禁用 (非常非关键)(非常有用)检查,或者针对特定功能或语句禁止它。
这样做:
- 将插入符号放在错误文本上(上面示例中的“选择”)
- 调出意图菜单(默认为alt-enter,我的设置为alt-backspace)
- 点击右箭头打开子菜单,然后选择相关操作
PyCharm 也有类似这样的小错误,但在我看来,它的好处远远超过它的缺点。如果您想尝试其他好的 IDE,还有 Spyder/Spyderlib。
在您提出问题后,我知道这是相当多的,但我希望这对您(您或其他人)有所帮助。
已编辑:最初,我认为这是特定于检查 __all__
的,但看起来它是更通用的“ Unresolved 引用”检查,这可能非常有用.最好使用该功能的语句级禁用,方法是使用上面提到的菜单,或者在语句之前的行上指定 # noinspection PyUnresolvedReferences
。
关于python - 在 __init__.py 中找不到引用 'xxx',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23248017/