使用Blacken格式化Python文件失败,未找到*blacken-error*缓冲区
关于Black格式化工具报错但找不到
blacken-error缓冲区的问题分析 我来帮你拆解下这个问题的可能原因:
Blacken插件的重定向逻辑出了问题
你看到blacken缓冲区里的代码是一个标准输入输出重定向的工具类——这应该是Blacken插件用来捕获Black运行输出的内部逻辑。如果这个重定向代码没有正确区分标准输出(stdout)和标准错误(stderr),就会导致原本应该写入*blacken-error*的错误信息被混入到blacken缓冲区里,结果错误缓冲区根本不会被创建。简单说就是插件自己的输出捕获逻辑搞混了,没把错误信息单独存起来。Black实际没有生成错误输出,但插件误判运行失败
报错提示让你看错误缓冲区,但有可能Black本身在运行时并没有输出任何错误内容——比如它只是返回了非零的退出码,但没有打印错误信息。这种情况下,插件虽然判定Black运行失败,但因为没有错误内容可以写入,所以*blacken-error*缓冲区就不会被创建。你可以手动在终端里用Black格式化目标文件,看看会不会输出错误信息,就能验证这个猜测。编辑器的缓冲区显示/命名问题
如果是在Emacs这类编辑器里使用Blacken,偶尔会出现缓冲区命名变体或者被自动隐藏的情况。比如有没有不小心过滤了缓冲区列表?或者*blacken-error*缓冲区在报错后被自动关闭了?不过你说已经检查了所有缓冲区,这个可能性相对小一些,但也可以排查下。
内容的提问来源于stack exchange,提问作者Wizard
相关产品推荐
相关产品推荐

