Python 类型检查器 mypy: subprocess.STARTUPINFO 未定义

Python type checker mypy: subprocess.STARTUPINFO is not defined

当使用 subprocess.STARTUPINFO 等时,mypy 抱怨:

error: Name 'subprocess.STARTUPINFO' is not defined
error: Module has no attribute "STARTUPINFO"
error: Module has no attribute "STARTF_USESHOWWINDOW"
error: Module has no attribute "SW_HIDE"

这是因为https://github.com/python/mypy/issues/1990? Edit: Is this because it's missing here吗?

有解决办法吗?

看来您的预感是正确的:这些常量似乎在 typeshed 中丢失了。

您应该在 typeshed repo 上提出问题,或者甚至可以提出拉取请求并自己添加它们。如果你足够快地让他们进入,这些更改可能会在下一个 mypy 版本中及时被接受,我相信是在这个星期五。 (如果没有,这些更改将成为下一个版本的一部分,大约一个月后?)

在此期间,您可以通过 # type: ignore 的某种组合以及配置 mypy 处理导入的方式来抑制这些错误。参见:

...详情。

或者,您可以克隆 typeshed,在本地修改它,并通过 --custom-typeshed-dir 命令行参数指示 mypy 使用您本地的 typeshed 副本。