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

无法从scipy._lib._util导入_FunctionWrapper的问题求助

问题描述

我正在尝试将WAV文件转换为MEI频谱图,使用的代码如下:

import glob
import librosa
import mei

# Create an empty list to store the spectrograms
spectrograms = []

# Set the directory containing the WAV files
mydir = "/content/drive/My Drive/Musical Classification/gtzan-fixed/Data/genres_original/disco"

# Get a list of all WAV files in the directory
file_list = glob.glob(mydir + "/*.wav")

# Iterate over all WAV files in the list
for file in file_list:
  # Load the WAV file
  data, sample_rate = librosa.load(file, sr=None)

  # Create the MEI spectrogram
  spectrogram = mei.mei(data, sample_rate, 512)

  # Add the spectrogram to the list
  spectrograms.append(spectrogram)

运行代码时触发ImportError,报错信息为:

ImportError: cannot import name '_FunctionWrapper' from 'scipy._lib._util'

错误发生在导入librosa库的环节,我已尝试卸载并重装相关库,但问题仍未解决,恳请协助。

解决方案

这个错误源于librosa与scipy版本不兼容:_FunctionWrapper是旧版scipy的模块,新版scipy已移除该内容,而你的librosa版本依赖这个模块。可以通过以下几种方式解决:

  • 安装兼容的scipy版本
    卸载当前scipy后,安装与librosa版本匹配的旧版scipy。例如librosa 0.9.x系列适配scipy 1.7.x:

    pip uninstall scipy -y
    pip install scipy==1.7.3
    

    若使用librosa 0.8.x,可选择scipy 1.5.x或1.6.x版本。

  • 用虚拟环境隔离依赖
    避免全局环境的版本冲突,创建虚拟环境后重新安装所有依赖:

    python -m venv mei_env
    # Windows激活环境
    mei_env\Scripts\activate
    # Linux/macOS激活环境
    source mei_env/bin/activate
    # 安装指定版本的依赖包
    pip install librosa==0.9.2 scipy==1.7.3 mei
    
  • 升级librosa到最新兼容版
    若项目允许升级librosa,安装最新版即可适配新版scipy:

    pip install --upgrade librosa
    

    升级后重新运行代码,版本不兼容问题通常会被解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:40:19