You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python开发Discord音乐Bot遇Opus加载错误求助

解决Discord.py中Opus共享库找不到的问题

看起来你遇到的核心问题是:discord.py无法找到系统级的Opus音频编解码库——你安装的opuslib是Python层面的封装库,但discord.py底层需要调用系统原生的Opus共享库,这两者不是一回事。下面是具体的解决步骤:

错误根源

你的报错OSError: opus: cannot open shared object file: No such file or directory明确说明:系统中没有安装Opus的系统级库,导致discord.py无法加载它来处理音频/语音功能。opuslib只是Python对Opus功能的调用封装,不能替代系统级的库文件。

解决方案

1. 安装系统级Opus库

根据你的操作系统选择对应的安装命令:

  • Ubuntu/Debian类Linux:
    sudo apt-get update && sudo apt-get install libopus0
    
  • CentOS/RHEL/Fedora:
    # CentOS/RHEL 7及以下
    sudo yum install opus
    # CentOS/RHEL 8+ / Fedora
    sudo dnf install opus
    
  • macOS(需先安装Homebrew):
    brew install opus
    
  • Windows:
    下载预编译的Opus DLL文件,将其放到以下任意位置:
    • Python安装目录下的Lib/site-packages/discord文件夹
    • 系统System32目录(64位系统)或SysWOW64目录(32位系统)
    • 添加DLL所在路径到系统PATH环境变量

2. 简化Opus加载逻辑

安装完系统库后,无需手动指定"opus"作为参数,discord.py会自动搜索系统中的Opus库。可以把代码修改为:

async def on_ready(self):
    print('Logged on as {0}!'.format(self.user))
    if not discord.opus.is_loaded():
        try:
            # 自动加载系统中的Opus库,无需指定文件名
            discord.opus.load_opus()
            print("Opus library loaded successfully")
        except Exception as e:
            print(f"Failed to load Opus library: {str(e)}")

3. 考虑升级discord.py版本

你当前使用的discord.py 1.0.1是较老旧的版本,后续稳定版(比如1.7.3)对Opus加载逻辑做了优化,兼容性更好。如果代码没有依赖旧版本特定API,可以尝试升级:

pip install --upgrade discord.py==1.7.3

验证

完成上述步骤后,重新运行Bot,Opus加载失败的错误应该会消失。

内容的提问来源于stack exchange,提问作者Subhaac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 19:32:32