簡體   English   中英

在 Z1A79417461C9ADBE88F8B93E7FAD39 上部署音頻預測 model 時出現“OSError: sndfile library not found”和“Unable to locate package libsndfile1”錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM