【问题标题】:Librosa Installation for Flask Heroku Deployment: "OSError: sndfile library not found" (H10 error)Flask Heroku 部署的 Librosa 安装:“OSError: sndfile library not found”(H10 错误)
【发布时间】:2021-09-25 22:58:07
【问题描述】:

我正在部署一个使用 librosa 的 Heroku Flask 应用程序,但是当我运行该应用程序时,我收到 H10 错误。我回到日志中得到了这个错误,这可能是 H10 错误的原因:

2021-07-17T13:06:17.447032+00:00 app[web.1]: OSError: sndfile library not found

requirements.txt:

git+https://github.com/CPJKU/madmom.git
ffmpeg==1.4
Flask==1.1.2
Jinja2==2.11.3
librosa==0.8.0
numpy==1.17.5
youtube-dl==2021.4.17
gunicorn==20.1.0

我尝试安装 libsndfile1,尝试使用 conda 安装 librosa,并尝试使用 homebrew 安装 librosa(我在 MacOS 上),但这些方法都没有奏效。

【问题讨论】:

  • 你可以通过编辑问题来粘贴你的 requirements.txt 文件中的内容吗
  • @charchit requirements.txt 现在有问题
  • 你检查过这个问题stackoverflow.com/a/57746160/15011621
  • @charchit 我在您链接的问题中尝试了第一个解决方案,但没有成功,但第二个解决方案删除了​​ OSError: sndfile library not found 消息,所以谢谢您。但是,我的应用程序仍然崩溃,但这一次,它给出了以下错误:ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject 我认为这与 madmom 包有关。您知道解决此错误的方法吗?谢谢!
  • 我有同样的问题,但在我的本地机器上,我按照这个答案,它解决了。 stackoverflow.com/a/66066058/15011621

标签: python macos flask heroku librosa


【解决方案1】:

当需要在 Heroku 上自定义 Linux 依赖项时,我建议切换到使用 Docker 而不是 Heroku buildpacks。然后,您可以在本地获得与在服务器上运行相同的环境。这是deploying with Docker 上的官方 Heroku 文档。

要使用 librosa et.c,您可以将 Docker 映像基于官方 Python Docker image。如果您使用 Debian 变体之一,则可以使用 sudo apt-get install -yqq libsndfile1 libsndfile1-dev 安装 sndfile。请注意,这应该在使用 pip 安装 Python 依赖项之前完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 2015-05-20
    • 2017-06-24
    相关资源
    最近更新 更多