Heroku部署Discord音乐机器人报错:libopus未找到
解决Heroku部署Discord音乐机器人找不到libopus的问题
我之前帮不少人处理过Heroku上部署Discord语音机器人的类似问题,你的情况核心是Heroku的运行环境缺少系统级的libopus库——虽然你在requirements.txt里装了opuslib,但discord.py的语音功能依赖的是系统层面的opus库,不是这个Python包。下面给你一步步的解决办法:
1. 新增Aptfile安装系统依赖
Heroku允许通过Aptfile来安装Ubuntu系统级的软件包,你需要在项目根目录创建一个名为Aptfile的文件,里面只需要写一行:
libopus0
这个就是Heroku环境里支持discord.py语音的核心系统库。
2. 整理requirements.txt的依赖
你的requirements.txt里已经有discord.py[voice]==0.16.12和PyNaCl==1.0.1,这俩是语音功能必须的,但opuslib==3.0.1其实可以删掉——如果你的代码没直接用到它的话,留着反而容易混淆,毕竟我们要靠系统的libopus0来支持语音。
3. 配置Heroku的buildpack顺序
得让Heroku先装系统包,再装Python依赖,所以要添加两个buildpack,顺序别搞反了。你可以用Heroku CLI执行这两条命令:
heroku buildpacks:add --index 1 heroku-community/apt heroku buildpacks:add --index 2 heroku/python
如果是在Heroku网页控制台操作的话,记得把heroku-community/apt放在第一个位置。
4. 重新部署应用
把新增的Aptfile和修改后的requirements.txt提交到Git,然后推去Heroku就行:
git add Aptfile requirements.txt git commit -m "添加系统级libopus依赖,修复语音功能" git push heroku main
做完这些,你的机器人应该就能在Heroku上正常加载opus库,顺利跑起来音乐功能啦。
内容的提问来源于stack exchange,提问作者Valkyrio100
相关产品推荐
相关产品推荐

