VSCode中scikit-learn make_blobs()的Intellisense异常报错问题
问题背景
运行环境:Python 3.10.9/3.11.1、Windows 10 22H2、VSCode最新版、scikit-learn 1.2.0,仅安装微软官方Python插件
调用代码:
X, y = make_blobs(n_samples=m, centers=2, n_features=2, center_box=(80, 100))
代码可正常运行,但VSCode Intellisense出现矛盾报错:默认未设置return_centers时,提示函数返回3个元素,要求接收3个变量;改为接收3个元素后,又提示返回2个元素。已尝试重装scikit-learn、清理Python文件、重装VSCode微软Python插件,问题未解决。
可行解决思路
手动指定类型注释
给变量添加明确的类型声明,强制Intellisense识别正确的返回值结构:from sklearn.datasets import make_blobs import numpy as np X: np.ndarray y: np.ndarray X, y = make_blobs(n_samples=m, centers=2, n_features=2, center_box=(80, 100))或者直接在赋值行添加类型断言:
X, y = make_blobs(n_samples=m, centers=2, n_features=2, center_box=(80, 100)) # type: Tuple[np.ndarray, np.ndarray]重启Python语言服务
按Ctrl+Shift+P打开命令面板,输入Python: Restart Language Server,重启VSCode的Python语言服务,多数缓存导致的类型解析异常能通过这个操作修复。确认Python解释器环境
检查VSCode左下角显示的Python解释器版本,确保选中的是安装了scikit-learn 1.2.0的环境。如果误切到其他未安装sklearn的环境,会导致类型提示失效。重置Python插件状态
在VSCode扩展面板找到官方Python插件,先禁用插件,重启VSCode后再重新启用插件,比直接重装更彻底清理插件运行缓存。排查本地同名文件干扰
检查工作目录下是否存在sklearn.py、datasets.py这类和官方库同名的文件,这类文件会覆盖官方模块的导入,导致类型提示逻辑混乱,如有则重命名或删除。
内容的提问来源于stack exchange,提问作者gunhasiz

