我在 VSCode 中为 Pylance 打开了严格的类型检查,它抱怨以下代码片段:
import numpy as np
from numpy.typing import NDArray
this_seems_to_be_causing_the_issue: NDArray[np.float32] = np.array([1,2,3], dtype=np.float32)
np.save("i_think_anything_can_go_here", this_seems_to_be_causing_the_issue)
我收到以下警告/错误:
Type of "save" is partially unknown
Type of "save" is "(file: str | PathLike[str] | _SupportsWrite[bytes], arr: _SupportsArray[dtype[Unknown]] | _NestedSequence[_SupportsArray[dtype[Unknown]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], allow_pickle: bool = ..., fix_imports: bool = ...) -> None"
我做错了什么,还是这是 Pylance / numpy / 其他东西的错误/限制?有办法解决这个问题吗?
起初我在
NDArray[Any]
中遇到了这个问题,并认为 Any
可能是问题所在,但更具体的类型会导致相同的警告。删除类型提示也没有帮助。不知道如何从这里调试。
我有 Python 版本 3.10.12、numpy 版本 1.23.5 和 Pylance 扩展版本 v2023.9.20。
这是一个 numpy 问题,因为我通过升级 numpy 修复了它。更具体地说,从版本 1.24.2 开始没有警告,这个特定的提交是修复:https://github.com/numpy/numpy/pull/23150.