Estoy tratando de implementar una aplicación de matraz que usa TensorFlow y Librosa. Entonces, como dependencia de Librosa, necesito el paquete sndfile .
Cuando ejecuto mi aplicación Flask, aparece este error:
import librosa File "/home/ec2-user/.local/lib/ python3.7/site-packages/librosa/__init__.py", line 211, in <module> from . import core File "/home/ec2-user/.local/lib/python3.7/site-packages/librosa/core/__init__.py", line 6, in <module> from .audio import * # pylint: disable=wildcard-import File "/home/ec2-user/.local/lib/python3.7/site-packages/librosa/core/audio.py", line 8, in <module> import soundfile as sf File "/home/ec2-user/.local/lib/python3.7/site-packages/soundfile.py", line 142, in <module> raise OSError('sndfile library not found') OSError: sndfile library not found [ec2-user@ip-172-31-90-51 CE_Ayush_Deployment]$ python3 app.py Traceback (most recent call last): File "app.py", line 2, in <module> from model_pipeline import Corona_Diagnoser File "/home/ec2-user/CE_Ayush_Deployment/model_pipeline.py", line 5, in <module> import librosa File "/home/ec2-user/.local/lib/python3.7/site-packages/librosa/__init__.py", line 211, in <module> from . import core File "/home/ec2-user/.local/lib/python3.7/site-packages/librosa/core/__init__.py", line 6, in <module> from .audio import * # pylint: disable=wildcard-import File "/home/ec2-user/.local/lib/python3.7/site-packages/librosa/core/audio.py", line 8, in <module> import soundfile as sf File "/home/ec2-user/.local/lib/python3.7/site-packages/soundfile.py", line 142, in <module> raise OSError('sndfile library not found') OSError: sndfile library not foundLo intenté:
sudo yum install autoconf autogen automake build-essential libasound2-dev \ libflac-dev libogg-dev libtool libvorbis-dev libopus-dev libmp3lame-dev \ libmpg123-dev pkg-config pythonEntonces recibo este mensaje:
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd No package build-essential available. No package libasound2-dev available. No package libflac-dev available. No package libogg-dev available. No package libvorbis-dev available. No package libopus-dev available. No package libmp3lame-dev available. No package libmpg123-dev available. No package pkg-config available.Sé que el paquete no está disponible en la instancia de Amazon EC2. ¿Alguien podría guiarme sobre cómo instalar los paquetes sndfile en el sistema?
Debe instalar libsndfile y sus archivos de desarrollo. Desafortunadamente, no está empaquetado en un repositorio, pero puede instalarlo descargando los RPM directamente.
wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic//libsndfile-1.0.31-alt1.x86_64.rpm wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic//libsndfile-devel-1.0.28-alt1.x86_64.rpm sudo yum localinstall libsndfile-devel-1.0.31-alt1.x86_64.rpmTambién puede instalar libsndfile desde la fuente.
Otra opción es cambiar a Ubuntu, que tiene paquetes para libsndfile y libsndfile-dev . Si desea implementar tensorflow específicamente, debe comenzar con la AMI de aprendizaje profundo de AWS . Estas AMI están creadas por AWS y vienen con los controladores y un montón de marcos ya instalados. Estos AMi tienen versiones con sabor a Ubuntu.
Estoy en Amazon Linux 2 , que puede verificar ejecutando lo siguiente en su servidor EC2.
[ec2-user@fake-ip ~]$ cat /etc/system-release Amazon Linux release 2 (Karoo) Los siguientes paquetes están disponibles en el repositorio de paquetes de Amazon : libsndfile-devel , libsndfile-utils , libsndfile .
[ec2-user@fakeip ~]$ yum search libsndfile Loaded plugins: extras_suggestions, langpacks, priorities, update-motd =============================================== N/S matched: libsndfile ================================================ libsndfile-devel.x86_64 : Development files for libsndfile libsndfile-utils.x86_64 : Command Line Utilities for libsndfile libsndfile.x86_64 : Library for reading and writing sound files libsndfile.i686 : Library for reading and writing sound filesSegún la lista de paquetes AMI de Amazon Linux , esta versión anterior de Amazon Linux no tiene libsndfile. Aunque puede habilitar los paquetes adicionales para Enterprise Linux (EPEL), libsndfile tampoco parece estar allí.
[ec2-user@fakeip ~]$ cat /etc/system-release Amazon Linux AMI release 2018.03 [ec2-user@fakeip ~]$ sudo yum-config-manager --enable epel ... skipping lots of output mirrorlist = https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=x86_64 ... [ec2-user@fakeip ~]$ yum search libsndfile Loaded plugins: priorities, update-motd, upgrade-helper epel/x86_64/metalink | 3.8 kB 00:00:00 epel | 4.7 kB 00:00:00 (1/3): epel/x86_64/group_gz | 74 kB 00:00:00 (2/3): epel/x86_64/updateinfo | 788 kB 00:00:00 (3/3): epel/x86_64/primary_db | 6.1 MB 00:00:00 1067 packages excluded due to repository priority protections Warning: No matches found for: libsndfile No matches found Los documentos de libsndfile indican que se ha compilado en Debian/GNU Linux , pero la AMI de Amazon Linux no se basa en Debian. Las dependencias de compilación para libsndfile ( autoconf autogen automake build-essential libasound2-dev libflac-dev libogg-dev libtool libvorbis-dev libopus-dev libmp3lame-dev libmpg123-dev pkg-config python ) todas se refieren a paquetes Debian, que no tienen el mismo nombre para otras versiones de Linux. En particular, build-essential , libasound2-dev , libflac-dev , libopus-dev , libmp3lame-dev y libmpg123-dev no están en EPEL.
[ec2-user@fakeip ~]$ yum search autoconf autogen automake build-essential \ libasound2-dev libflac-dev libogg-dev libtool libvorbis-dev libopus-dev \ libmp3lame-dev libmpg123-dev pkg-config python ... skipping output Warning: No matches found for: build-essential Warning: No matches found for: libasound2-dev Warning: No matches found for: libflac-dev Warning: No matches found for: libopus-dev Warning: No matches found for: libmp3lame-dev Warning: No matches found for: libmpg123-dev libmpelame-dev puede ser lame-devel , lame-libs , lame y/o lame-mp3x .
[ec2-user@fakeip ~]$ yum search lame Loaded plugins: priorities, update-motd, upgrade-helper 1067 packages excluded due to repository priority protections ================================================== N/S matched: lame =================================================== lame-devel.i686 : Development files for lame lame-devel.x86_64 : Development files for lame lame-libs.i686 : LAME MP3 encoding library lame-libs.x86_64 : LAME MP3 encoding library flamerobin.x86_64 : Graphical client for Firebird lame.x86_64 : Free MP3 audio compressor lame-mp3x.x86_64 : MP3 frame analyzer libflac-dev puede ser flac-devel
[ec2-user@fakeip ~]$ yum search flac Loaded plugins: priorities, update-motd, upgrade-helper 1067 packages excluded due to repository priority protections ================================================== N/S matched: flac =================================================== flac-devel.x86_64 : Development libraries and header files from FLAC easytag.x86_64 : Tag editor for mp3, ogg, flac and other music files flac.i686 : An encoder/decoder for the Free Lossless Audio Codec flac.x86_64 : An encoder/decoder for the Free Lossless Audio Codec mp3fs.x86_64 : FUSE filesystem to transcode FLAC to MP3 on the fly libopus-dev puede ser opus-devel
[ec2-user@fakeip ~]$ yum search opus Loaded plugins: priorities, update-motd, upgrade-helper 1067 packages excluded due to repository priority protections ================================================== N/S matched: opus =================================================== opus-devel.i686 : Development package for opus opus-devel.x86_64 : Development package for opus opus.i686 : An audio codec for use in low-delay speech and audio communication opus.x86_64 : An audio codec for use in low-delay speech and audio communication libmpg123-dev es https://www.mpg123.org/