![](/img/trans.png)
[英]OSError('sndfile library not found') in librosa while deploying in azure app service
[英]I am getting “OSError: sndfile library not found” & “Unable to locate package libsndfile1” errors when deploying audio prediction model on Heroku
目標是在 Heroku 上部署音頻預測 ML model,它使用來自 python 的 librosa 庫。
app.py 文件使用 librosa 庫從音頻中提取特征。
當我嘗試在 Heroku 上部署時,出現如下所示的錯誤。
2020-06-12T03:27:43.099874+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/librosa/core/audio.py", line 10, in <module>
2020-06-12T03:27:43.099875+00:00 app[web.1]: import soundfile as sf
2020-06-12T03:27:43.099875+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/soundfile.py", line 142, in <module>
2020-06-12T03:27:43.099876+00:00 app[web.1]: raise OSError('sndfile library not found')
2020-06-12T03:27:43.099876+00:00 app[web.1]: OSError: sndfile library not found
2020-06-12T03:27:43.101008+00:00 app[web.1]: [2020-06-12 03:27:43 +0000] [11] [INFO] Worker exiting (pid: 11)
2020-06-12T03:27:43.255623+00:00 app[web.1]: [2020-06-12 03:27:43 +0000] [4] [INFO] Shutting down: Master
2020-06-12T03:27:43.255725+00:00 app[web.1]: [2020-06-12 03:27:43 +0000] [4] [INFO] Reason: Worker failed to boot.
2020-06-12T03:27:43.333827+00:00 heroku[web.1]: Process exited with status 3
2020-06-12T03:27:43.371190+00:00 heroku[web.1]: State changed from starting to crashed
這是我用來安裝依賴項的構建包的快照:構建包列表
下面是 requirements.txt 中提到的依賴項列表:
Flask==1.1.1
gunicorn==19.9.0
itsdangerous==1.1.0
Jinja2==2.10.1
MarkupSafe==1.1.1
Werkzeug==0.15.5
numpy>=1.9.2
scipy>=0.15.1
scikit-learn>=0.18
matplotlib>=1.4.3
pandas>=0.19
librosa==0.7.2
aniso8601==8.0.0
audioread==2.1.5
我還創建了一個 Aptfile 來安裝 libsndfile1。 我已經在 Heroku 上鏈接了一個構建包,以便從此 Aptfile 安裝。 以下是我的 Aptfile 中提到的列表:
libsndfile1
libsndfile-dev
libasound2-dev
python-dev
python-numpy
python-setuptools
這是在 Heroku 上部署時出現錯誤“無法找到 package libsndfile1”的圖像
如何克服“OSError: sndfile library not found”和“Unable to locate package libsndfile1”錯誤?
我已將所有文件上傳到 GitHub此處以獲取更多信息。
更新(2020 年 12 月 14 日) :我更改了我的 Aptfile 和 requirements.txt 內容,它起作用了。
以下是 Aptfile 的內容:
libsndfile1
libsndfile-dev
ffmpeg
以下是 Aptfile 的內容:
aniso8601==8.0.0
audioread==2.1.8
certifi==2019.11.28
cffi==1.14.0
Click==7.0
decorator==4.4.2
ffmpeg-python==0.2.0
Flask==1.1.1
Flask-RESTful==0.3.8
future==0.18.2
gunicorn==20.0.4
itsdangerous==1.1.0
Jinja2==2.11.1
joblib==0.14.1
librosa==0.7.2
llvmlite==0.31.0
MarkupSafe==1.1.1
marshmallow==3.2.2
numba==0.48.0
numpy==1.18.1
pycparser==2.20
pydub==0.23.1
pytz==2019.3
resampy==0.2.2
scikit-learn==0.22.2.post1
scipy==1.4.1
six==1.14.0
SoundFile==0.10.3.post1
Werkzeug==1.0.0
wincertstore==0.2
pandas==1.0.1
pathlib==1.0.1
您需要在操作系統中將sndfile
安裝為 package。 此答案記錄了如何在 Heroku 上執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.