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

导入scipy.ndimage时Pylance报reportMissingImports无法解析错误

报错根因

这个报错有两层原因:

  • 核心原因是scipy.ndimage.imread属于已被彻底删除的废弃API:SciPy从1.0版本开始标记imread为弃用状态,1.2.0及更高版本已经完全移除了scipy.ndimage、scipy.misc下的imread函数,哪怕你正确安装了最新版SciPy,也找不到这个导入路径。
  • Pylance提示导入无法解析的次要原因,大概率是VS Code当前选中的Python解释器和你安装依赖的环境不匹配,没有正确加载到已安装的第三方库路径。
修复步骤
  1. 先修正Pylance的环境识别问题
    按Ctrl+Shift+P调出VS Code命令面板,搜索执行Python: Select Interpreter,在列表里选中你实际安装了folium、numpy等依赖的Python环境(虚拟环境/conda环境/系统Python均可),确保Pylance能正常识别已安装的包。
  2. 替换已废弃的imread调用
    原scipy的imread删除后,官方推荐使用imageio库的同名读取函数,返回值格式和原接口完全兼容,不需要修改后续图层叠加的业务逻辑。
    先安装依赖:
pip install imageio

把原代码里的导入行from scipy.ndimage import imread替换为:

from imageio import imread
  1. 修正原代码里的笔误
    原代码调用的add_children方法是拼写错误,folium添加图层的方法为单数形式的add_child,不修正的话导入问题解决后依然会触发属性不存在的报错。
修复后可直接运行的完整代码
import folium
from folium import plugins
from imageio import imread 


# 影像叠加的地理边界
min_lon = -123.5617
max_lon = -121.0617
min_lat = 37.382166
max_lat = 39.048834

# 初始化底图
map_ = folium.Map(location=[38.2, -122],
                  tiles='Stamen Terrain', zoom_start = 8)

# 读取PNG光污染影像为numpy数组
data = imread('./ii_overlay.png')

# 叠加影像图层
map_.add_child(plugins.ImageOverlay(data, opacity=0.8,
        bounds =[[min_lat, min_lon], [max_lat, max_lon]]))
map_

如果你不想额外装imageio,也可以用Pillow实现同等效果:安装Pillow后,把读取影像的代码替换为下面两行即可,不需要改动其他逻辑:

from PIL import Image
import numpy as np
data = np.array(Image.open('./ii_overlay.png'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:24:22