PyCharm 如何对整个文件进行 noinspection?
在PyCharm中,有没有办法对整个文件禁用检查功能?
这样做的原因是因为在使用py.test的时候,它有一些叫做“fixtures”的东西,这些东西会和函数参数产生冲突,导致一些引用无法解析。例如:
from myfixtures import user # Unused import statement warning
def test_is_awesome(user): # Shadows name 'user' from outer scope warning
assert user.is_awesome()
此外,py.test还会发出其他警告,比如使用pytest.raises()
时,会在pytest.py中出现“找不到引用‘raises’”的错误。
也许还有其他方法可以解决这些问题?或者我是不是用错了py.test?
3 个回答
2
我发现把每条语句的检查放在文件的开头:
...
# noinspection PyUnusedLocal
instance = mommy.make(Contact)
这样就可以在整个文件中都不进行检查了:
# noinspection PyUnusedLocal
from django.urls import reverse
6
关于“我是不是用错了py.test?”这个问题,来简单说一下:
导入测试工具(fixtures)并不是最好的做法。更好的方法是把这些工具放在需要它们的包的conftest.py文件里。如果一个工具在两个包中都用到,那就把conftest.py放在它们的父目录下,把工具放在里面。这样可以避免一些未使用的导入和命名冲突的警告。
至于pytest.raises
的命名空间问题,目前我觉得没有解决办法。这也是pylint(一个代码检查工具)遇到的问题(我听说有人在努力为pylint开发一个py.test的插件来解决这些问题)。所以最终来说,代码检查工具还是需要对py.test有一点了解。
29
在PyCharm中,有办法对整个文件禁用检查吗?
可以的。
注意:这个回答只针对上面的问题(而不是关于“也许还有其他方法来解决这些问题?也许我使用py.test不正确?”)。
- 打开
设置/偏好设置 | 外观与行为 | 范围
- 创建一个新的范围,把那些“多余”的文件包含进去
- 打开
设置/偏好设置 | 编辑器 | 检查
- 找到那个“有问题”的检查项
- 在合适的列表中选择刚刚创建的范围(旧版IDE需要右键点击并选择“添加范围”)
- 对这个特定的范围禁用该检查。
以下是我在PhpStorm 2022.3中的一个例子(在PyCharm中也是类似的):
另外(应该有效:虽然这取决于具体的检查项... 我不是PyCharm用户,所以无法确认)
- 在代码中光标停留在错误/警告的位置时,使用Alt + Enter(或者通过鼠标点击灯泡图标)
- 从弹出的菜单中选择正确的选项
- 使用右箭头键展开子菜单(用鼠标操作可能会有点麻烦,因为点击区域比较小)
- 寻找
抑制检查
选项 - 这会在前一行(或者文件顶部,取决于你选择的内容)添加一个特殊的注释,以仅忽略该检查