Python工具Black无法格式化带end参数的print语句原因咨询
Black无法格式化带end参数的print语句的原因及解决方法
报错原因
- Black配置的目标Python语法版本过低
print作为内置函数支持end参数是Python 3的专属特性,如果你的Black配置里target-version被设为Python 2相关版本,就会把这类print语句判定为非法语法,无法解析。 - 本地Black版本过旧
2021年之前发布的部分Black版本存在语法解析漏洞,对包含转义字符、关键字参数的print语句识别异常。 - 项目配置优先级冲突
如果项目根目录下存在pyproject.toml、setup.cfg、.black等配置文件,其中的错误Black配置会覆盖你全局的参数设置,触发解析报错。
解决步骤
- 升级Black到最新正式版,执行命令:
pip install --upgrade black - 运行格式化时手动指定Python目标版本,比如你的项目使用Python 3.9开发,执行:
black --target-version py39 待格式化的文件名.py - 检查项目内的Black配置文件,删除错误的
target-version配置,或者将其修改为你实际使用的Python 3版本。
你可以单独创建仅包含print("\n", end='')的测试文件验证,完成上述操作后即可正常格式化,说明代码本身语法没有问题。
内容的提问来源于stack exchange,提问作者Kalcifer
相关产品推荐
相关产品推荐

