VSCode中配置Ruff忽略F401规则无效,如何阻止自动移除未使用导入?
VSCode中配置Ruff忽略F401规则无效,如何阻止自动移除未使用导入?
我太懂这种刚加完导入还没来得及写代码,就被自动删掉的憋屈感了!咱们一步步来排查解决这个问题:
1. 先确认Ruff的配置文件优先级
你同时有pyproject.toml和ruff.toml两个配置文件,Ruff会优先读取ruff.toml的设置。如果你的忽略规则只写在pyproject.toml里,很可能被ruff.toml的默认配置覆盖了。
解决方法:
把忽略规则加到**ruff.toml**中,比如:
[lint] ignore = ["E501", "F401"]
如果更倾向用pyproject.toml,可以检查ruff.toml里有没有冲突的配置,或者直接删除ruff.toml让Ruff读取pyproject.toml的设置。
2. 关闭VSCode Ruff插件的自动修复功能
就算你忽略了F401规则,如果Ruff插件的自动修复(实时修复或保存时修复)开着,它还是会自动移除未使用的导入。
你可以这样调整:
- 打开VSCode设置(快捷键
Ctrl+,),搜索「Ruff: Auto Fix On Save」和「Ruff: Fix All」,把这两个选项关掉; - 或者直接在你的
.vscode/settings.json里添加以下配置:
"ruff.fixAll": false, "ruff.autoFixOnSave": false
要是不想完全关闭自动修复,只想针对F401禁用,可以改成:
"ruff.fix.args": ["--ignore=F401"]
3. 顺带处理Pylance的未使用导入提示(可选)
你提到还有Pylance的"status" is not accessed提示,要是想去掉这个,可以在settings.json的python.analysis.diagnosticSeverityOverrides里补充配置:
"python.analysis.diagnosticSeverityOverrides": { "reportMissingImports": "none", "reportUnusedImport": "none" }
4. 验证配置是否生效
做完以上调整后,重启VSCode或者通过Ctrl+Shift+P执行「重新加载窗口」,然后再尝试添加status导入,看看是否还会被自动移除。另外也可以在终端运行ruff check命令,确认F401错误是否已经被忽略。
备注:内容来源于stack exchange,提问作者GEBRU
相关产品推荐
相关产品推荐

