PyCharm整个文件不进行检查?

34

在PyCharm中是否有可能禁用整个文件的检查?

之所以需要这样做,是因为在处理py.test时,它使用的固定装置似乎会掩盖函数参数,并同时导致未解决的引用。例如:

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个回答

28
在PyCharm中是否可以禁用整个文件的检查?
是的。
注意:此答案仅适用于此引用的问题(而不是关于“也许有另一种方法来解决这些问题?也许我使用py.test不正确?”)。
1. 设置/首选项|外观和行为|范围 2. 创建一个新的范围,其中包括这样的“不需要”的文件 3. 设置/首选项|编辑器|检查 4. 找到那个“有问题”的检查 5. 在适当的列表中选择新创建的范围(旧版本的IDE必须使用右键单击并选择“添加范围”) 6. 禁用该检查特定范围。
我的PhpStorm 2022.3中的示例(在PyChram中将相同或非常相似): enter image description here

enter image description here

或者(应该可以:但这取决于实际的检查...我不是PyCharm用户,所以无法验证)

  1. 在代码中的错误/警告位置上,光标放置在那里时按下Alt + Enter(或通过鼠标使用灯泡图标)
  2. 从弹出菜单中选择正确的条目
  3. 使用向右箭头键展开子菜单(使用鼠标可能有些棘手:点击框相当小)
  4. 查找Suppress inspection选项
  5. 它将在前一行(或文件顶部,具体取决于你选择的内容)添加一个特殊注释,仅忽略该检查

enter image description here (这是PhpStorm中的样子;可用选项可能因检查而异)

相关:https://dev59.com/A2Ii5IYBdhLWcg3w9gRy#20803118


2
谢谢。这非常方便,因为您可以通过源代码控制共享这些设置。 - gak

6
回答“也许我在错误地使用py.test?”的问题:
导入固件不是最佳模式。相反,最好将夹具放置在需要它们的包的conftest.py文件中。如果一个夹具在两个包中使用,只需在它们的父目录中放置一个conftest.py,并将夹具放在那里即可。这将消除未使用的导入和遮蔽警告。
至于pytest.raises命名空间问题,我认为目前没有解决方案。这也是pylint所遇到的问题(我认为有一个创建用于解决这些问题的py.test插件的努力)。因此,最终linter仍然需要了解一些关于py.test的知识。

2
我发现将每个语句进行检查会很有帮助:
    ...
    # noinspection PyUnusedLocal
    instance = mommy.make(Contact)

在文件开头禁止它,对整个文件都起作用:

# noinspection PyUnusedLocal
from django.urls import reverse

1
使用 PyCharm 2020.2(专业版)Build #PY-202.6397.98,建于2020年7月27日并将 # noinspection PyUnusedLocal 放置在文件的第一行似乎对我有效,但该文件是 jupyter 的自动生成设置文件。所有行均为注释或注释掉的默认值,但某个设置我在中间编辑过。一旦注释被移除,就是下一条语句。编辑更多行后,那些后面的行显示出问题。 - hlongmore
2
这里提供了一个参考,介绍通过使用“noinspection”可以禁用的不同检查项: https://www.jetbrains.com/help/pycharm/disabling-and-enabling-inspections.html#comments-ref - Konstantin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接