使用moviepy转换webm为wav时报'moviepy has no attribute VideoFileClip'错误
问题解决方法
1. 修正代码调用逻辑错误
你当前的导入方式为直接引入VideoFileClip类到当前命名空间,调用时不需要加moviepy.前缀,原代码的调用方式本身就会触发属性不存在报错,修正后的代码如下:
from moviepy.video.io.VideoFileClip import VideoFileClip # 直接调用导入的VideoFileClip类即可 clip = VideoFileClip(file) clip.audio.write_audiofile(f"{file}.wav")
2. 解决编译打包后报错的问题
该问题是打包工具未正确识别MoviePy的隐式依赖导致,按以下步骤处理即可:
- 若使用PyInstaller打包,在打包命令中添加隐藏导入参数:
pyinstaller --hidden-import "moviepy" --hidden-import "moviepy.editor" --hidden-import "moviepy.video.io.VideoFileClip" 你的脚本名.py - 也可以在代码开头额外添加
import moviepy的显式导入声明,确保打包工具能识别到完整的模块引用 - 打包前确认打包使用的Python环境与PyCharm运行代码的解释器环境一致,避免多环境模块版本差异导致的问题
内容的提问来源于stack exchange,提问作者RED ALPHA97
相关产品推荐
相关产品推荐

