python-3.x - 如何批量修复 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
选项和范围的临时选择。警告将列出以下项目:
Python version 3.7, 3.8 do not support this syntax
Python version 3.7, 3.8 do not have module __builtin__
Python version 3.7, 3.8 do not have method xrange
Python version 3.7, 3.8 do not have module cPickle
dict.iterkeys(), dict.iteritems() and dict.itervalues() methods are not available in py3
basestring type is not available in py3
如果您选择前两种警告类型的示例,PyCharm 可以应用“快速修复”,例如Convert raise statement to supported form
. 对于上面列出的其他警告,它只能提供抑制警告:-(
我有数百个这样的!如何批量修复它们?
解决方案
有一个可爱的把戏。
- 在
Inspection Results
工具窗口中,单击Expand All
按钮(或键入 Command-+ 或键盘映射中的任何等效项)。 - 键入 Command-F(或等效项)以查找您选择的检查警告类型的示例,例如搜索
syntax
.- (PyCharm 不会为此打开“查找”对话框,但您仍然可以键入搜索文本,它会在叠加层中显示。)
- 执行
Edit
>Select All
(或键入 Command-A 或等效项)。 - 现在单击按钮以应用快速修复!
(如果您知道如何让 PyCharm 修复其他兼容性警告,请添加更多答案。否则,它就在modernize
。)
推荐阅读
- python - 如何将字符串的DataFrame列组合成一列?
- jestjs - 我怎样才能只为我的一项测试模拟时刻?
- firebase - Flutter - Flutterfire 和 Geofire (pods) 之间没有兼容的 iOS 版本
- r - 如何使用 pivot_longer() 将数据从宽格式重塑为长格式?
- javascript - 给定键的序列搜索
- laravel - 如何按字符串值中的天数对数据表进行排序
- r - ggplot2 热图,平铺高度和宽度为 aes()
- r - 使用 R 对数字求和的函数
- object - deepfreeze 库 javascript 源代码
- reactjs - 拖放库 dnd-kit 在我的 React 示例中不起作用