首页 > 解决方案 > 如何批量修复 PyCharm 检查警告,例如将所有“raise”语句转换为 Python 3 语法?

问题描述

问题是:如何批量应用 PyCharm 检查快速修复?[大概在 IntelliJ、CLion 等人中也有相同的功能。]

我正在将 Python 2.7 代码库移植到 Python 3.8 并希望一次进行一种更改 [例如替换raise Exception, "message"raise Exception("message")]、查看并测试它。最终我会尝试使用python-modernize,但是 PyCharm 可以批量进行特定类型的兼容性修复吗?

您可以配置PyCharmCode compatibility inspection以检查 Python 2.7 + 3.7 + 和 3.8,然后在整个项目或更小的范围内运行该检查。或者使用Code>Run Inspection by Name...菜单命令来运行Code compatibility inspection选项和范围的临时选择。警告将列出以下项目:

如果您选择前两种警告类型的示例,PyCharm 可以应用“快速修复”,例如Convert raise statement to supported form. 对于上面列出的其他警告,它只能提供抑制警告:-(

我有数百个这样的!如何批量修复它们?

标签: python-3.xpython-2.7intellij-ideapycharmrefactoring

解决方案


有一个可爱的把戏。

  1. Inspection Results工具窗口中,单击Expand All按钮(或键入 Command-+ 或键盘映射中的任何等效项)。
  2. 键入 Command-F(或等效项)以查找您选择的检查警告类型的示例,例如搜索syntax.
    • (PyCharm 不会为此打开“查找”对话框,但您仍然可以键入搜索文本,它会在叠加层中显示。)
  3. 执行Edit> Select All(或键入 Command-A 或等效项)。
  4. 现在单击按钮以应用快速修复!

(如果您知道如何让 PyC​​harm 修复其他兼容性警告,请添加更多答案。否则,它就在modernize。)


推荐阅读