在__init__.py中找不到引用“ xxx”-Python / 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,除了上面的一个合适的 来源 是空白文件。我收到许多此类警告:
在__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__
模块中的语句?..这实际上是我们听到年轻的Spock在接受测试时回答的问题,他回答道:“这在道德上值得称赞,但在道德上不是强制性的。”为了解决这个问题,您可以简单地全局禁用该检查
(非常不重要)(非常有用),或者针对特定的函数或语句取消检查。为此:
- 将插入符号放在错误的文本上(“选择”,来自上面的示例)
- 调出意图菜单(默认情况下,按alt输入,将mine设置为alt-backspace)
- 点击向右箭头以打开子菜单,然后选择相关操作
PyCharm有很多类似的小错误,但是我认为它的好处远大于缺点。如果您想尝试另一个好的IDE,也可以使用Spyder / Spyderlib。
在您提出问题后,我知道这已经很多了,但是我希望这对您(或其他人)有所帮助。
编辑: 最初,我认为这是特定于check的
__all__
,但是看起来它是更通用的“ Unresolved
References”检查,这可能非常有用。最好是使用语句级别的功能禁用功能,方法是使用上面提到的菜单,或者# noinspectionPyUnresolvedReferences
在语句之前的行中指定。