部署Python代码到Heroku时librosa库相关报错如何解决
解决方案
- 优先清理Heroku的依赖缓存,Heroku默认会缓存历史安装的依赖包,即便你修改了requirements.txt,旧的高版本numpy仍可能残留在缓存中,导致版本冲突。本地执行命令:
heroku builds:cache:purge -a 替换为你的Heroku应用名,执行完成后重新推送代码部署即可。这是最常见的触发该问题的原因 - 显式锁定librosa版本,在requirements.txt中添加
librosa==0.8.1,该版本完美兼容你指定的numba0.54.1、numpy1.19.5依赖组合,不会触发依赖自动升级。 - 固定Python运行版本,在项目根目录新建runtime.txt文件,写入内容
python-3.9.16,避免Heroku自动升级Python版本导致依赖匹配异常。 - 若以上操作仍未解决,可切换兼容的高版本依赖组合,将requirements.txt的对应条目替换为:
numba==0.56.4 numpy==1.21.6 librosa==0.9.2
- 部署完成后可执行命令
heroku run python -c "import numpy; print(numpy.__version__); import numba; print(numba.__version__); import librosa; print('导入成功')",直接在Heroku运行环境验证依赖是否正常。
内容的提问来源于stack exchange,提问作者Ivan Anisimov
相关产品推荐
相关产品推荐

