pycharm中需区分三类警告:运行时deprecationwarning用warnings.filterwarnings("ignore", category=deprecationwarning)控制;编辑器波浪线(如pep8)通过settings→editor→inspections→python配置;matplotlib后端提示则需matplotlib.use("agg")解决,三者来源不同、不可混用同一方法处理。

PyCharm里跳过警告提示,不能一概而论地“关掉所有警告”,得先分清是哪类警告:是运行时输出的DeprecationWarning这类 Python 警告,还是编辑器里代码下方的黄色波浪线(比如 PEP8、命名规范、宽泛异常等静态检查),或是 matplotlib 弹出的后端交互提示。三者来源不同、控制方式完全不同,混着处理反而容易踩坑。
怎么忽略运行时打印的 Python 警告(如 DeprecationWarning)
这类警告出现在控制台输出里,由 Python 解释器本身触发,和 PyCharm 设置无关。常见于 pandas、scikit-learn、matplotlib 等库升级后遗留的旧接口调用。
- 最直接的方式是在脚本开头加:
import warnings; warnings.filterwarnings("ignore") - 如果只想屏蔽某类,比如只忽略弃用警告,用:
warnings.filterwarnings("ignore", category=DeprecationWarning) - 不建议在项目入口全局 ignore —— 它会掩盖真实问题;更适合加在临时调试脚本或 notebook 的第一行
- 注意:
warnings.filterwarnings对RuntimeWarning或UserWarning同样生效,但不会影响语法错误或 IDE 静态检查
怎么去掉编辑器里的黄色波浪线(PEP8 / 命名 / 异常捕获等)
这些不是运行时警告,而是 PyCharm 自己的代码检查(Inspection)结果,控制它们要进 Settings → Editor → Inspections → Python。
PyCharm 2026.2提供 JetBrains 官方 2026.2 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 想整体关掉 PEP8 风格检查:取消勾选
PEP 8 coding style violation和PEP 8 naming convention violation - 想只忽略某一条(比如
E302缺少空行):在对应警告处按Alt+Enter→ 选Ignore for this statement,或手动在Ignored errors列表里添加 ID - 遇到
Too broad exception clause提示:别直接关检查,优先改代码——把except Exception:拆成具体类型,如except FileNotFoundError:+except ValueError: - 修改后需重启 PyCharm 或重新索引项目,否则部分检查可能不立即生效
怎么禁用 matplotlib 的 “BackendQt5Agg is interactive backend” 弹窗
这不是 Python 警告,也不是 PyCharm 检查,而是 matplotlib 在检测到 Qt 后端时主动向控制台写的提示信息。它不影响执行,但干扰日志阅读。
- 根本解法是换非交互后端:在代码开头加
import matplotlib; matplotlib.use("Agg")(必须在import matplotlib.pyplot之前) - 更持久的做法是修改 matplotlib 配置文件
matplotlibrc,把backend: Agg写进去(路径可通过matplotlib.matplotlib_fname()查看) - 不要用
warnings.filterwarnings去屏蔽它——这条信息不是 warning 类型,filter 不生效 - 如果必须用 Qt 后端(比如需要交互式图表),可改用 PyCharm 的 Scientific Mode 运行,或把
plt.show()放在最后单独执行
真正麻烦的地方在于:同一行代码可能同时触发运行时 warning、编辑器波浪线、matplotlib 提示三类“警告”,但它们互不隶属,各自有各自的开关。搞不清来源就乱加 warnings.filterwarnings 或关 Inspection,很容易让真问题漏过去。










