Python导入Whisper触发语法错误,此前运行正常,求排查思路
问题原因分析
- Python版本不兼容:错误代码里的
word_timings := segment.get("words", None)使用了海象运算符(:=),这个语法是Python 3.8才正式引入的,而你的Python环境是3.7,版本不匹配导致触发语法错误。 - Whisper版本自动更新:之前代码能正常运行,是因为当时安装的Whisper旧版本还支持Python 3.7,之后环境里的Whisper被自动更新到了不兼容3.7的新版本,才会在导入时出现问题。
解决建议
- 升级Python版本到3.8及以上,这是最彻底的解决方案,可兼容最新版Whisper的所有功能。
- 如果无法升级Python,可安装兼容3.7的旧版Whisper,比如指定版本安装:
该版本是最后一批支持Python 3.7的Whisper版本之一。pip install whisper==20230314
错误日志原文:
line 9, in <module> import whisper File "/miniconda/lib/python3.7/site-packages/whisper/__init__.py", line 11, in <module> from .audio import load_audio, log_mel_spectrogram, pad_or_trim File "/miniconda/lib/python3.7/site-packages/whisper/audio.py", line 10, in <module> from .utils import exact_div File "/miniconda/lib/python3.7/site-packages/whisper/utils.py", line 108 if word_timings := segment.get("words", None): ^ SyntaxError: invalid syntax
内容的提问来源于stack exchange,提问作者maruchan105
相关产品推荐
相关产品推荐

