You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

flake8、pylint报无效语法错误但Python代码可运行,求原因

为啥代码能跑但flake8/pylint报无效语法?我来给你捋明白!

哈哈,我一眼就瞅出问题所在了——你的代码里的shebang解释器指令行后面没换行,直接把后续代码硬塞到同一行里了!

先看看你的原代码:

#!/usr/bin/env python with open("test.py", "a") as output: print("hello world", file=output)

虽然有些Python解释器会把shebang行(就是开头#!那行)当作特殊注释处理,自动忽略行里python之后的内容,所以代码能正常运行,但flake8、pylint这类静态检查工具是严格按照Python语法规则解析的,它会把python后面的with当成代码的一部分,这就直接触发了语法错误提示。

修复超简单:把shebang行单独放一行,代码另起行写

调整后的正确代码:

#!/usr/bin/env python
with open("test.py", "a") as output:
    print("hello world", file=output)

这样改完之后,静态检查工具就不会再报错了,代码的可读性也提升了不少~另外建议日常用black这类自动格式化工具打理代码,能避免好多这类小坑哦!

内容的提问来源于stack exchange,提问作者yes4me

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:03:36