导入moviepy.editor出现TypeError报错的解决方法
报错根因
该报错与你测试的moviepy 1.0.1、1.0.3版本无直接关联,本质是依赖链版本不兼容导致的语法错误:
安装moviepy时包管理工具自动拉取了不匹配Python 3.9环境的高版本imageio依赖,高版本imageio调用了numpy的泛型下标写法np.dtype[ScalarType],但当前环境中的numpy版本不支持该语法,最终抛出'type' object is not subscriptable错误。
修复方案
在激活vids虚拟环境的前提下,选择以下任意一种方案执行即可:
- 方案1:锁定适配Python3.9的moviepy配套依赖版本,稳定性最高,执行命令:
pip install imageio==2.19.3 imageio-ffmpeg==0.4.7
执行完成后重新运行导入语句即可正常加载moviepy。
- 方案2:保留高版本imageio,升级numpy到支持对应语法的版本,执行命令:
pip install numpy==1.26.2
- 方案3:如果存在其他依赖冲突,直接重装moviepy并锁定全量兼容版本,一步到位:
pip install moviepy==1.0.3 numpy==1.26.2 imageio==2.31.1 imageio-ffmpeg==0.4.9
注意:如果使用conda管理环境,执行上述命令前确认终端前缀带有
(vids)标识,避免依赖安装到错误的环境中。
内容的提问来源于stack exchange,提问作者Kelly
相关产品推荐
相关产品推荐

