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

Django部署Heroku调用pygame提示缺少libasound.so.2如何解决?

问题根因

从运行日志可直接定位错误触发点为代码中pygame.mixer.init()调用。libasound.so.2是Linux系统ALSA音频框架的核心依赖库,Heroku-20栈(基于Ubuntu 20.04)的默认运行环境没有预装该系统级依赖,因此本地环境运行正常、部署后报错。
另外你的应用当前构建slug大小为319.5M,已超出Heroku官方300M软限制,后续可能出现启动超时、部署失败问题,建议同步优化依赖体积。

解决方案

方案一(推荐):移除服务端pygame音频逻辑

你的应用为Web类应用,疲劳检测的提示音完全可以由前端实现播放,服务端运行在无音频输出设备的容器中,调用pygame.mixer本身没有实际意义。直接删除服务端的pygame相关代码、从requirements.txt中移除pygame依赖即可解决问题,同时可大幅缩减slug体积。

方案二:安装缺失的系统依赖

如果必须保留服务端pygame相关逻辑,可通过Heroku的apt buildpack安装缺失的系统依赖:

  1. 在项目根目录新建名为Aptfile的文件,写入以下内容:
libasound2
libasound2-dev
  1. 执行以下命令为你的Heroku应用添加apt buildpack,确保其优先级高于Python buildpack:
    heroku buildpacks:add --index 1 heroku-community/apt
  2. 将Aptfile提交到Git仓库后重新执行git push heroku master部署即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:54:00