通过pip install在ubuntu上安装pysox,无法解析sox.h

cne*_*uro 3 python ubuntu pip sox

我正在尝试使用pip(easy_install抛出完全相同的错误)在Ubuntu 12.04.2 LTS上安装pysox包.

$ pip install pysox
[...]
building 'pysox.sox' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c pysox/sox.c -o build/temp.linux-x86_64-2.7/pysox/sox.o

pysox/sox.c:227:17: fatal error: sox.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我的系统安装了:

$ dpkg --list | grep sox
ii  libsox-fmt-all      14.3.2-3    All SoX format libraries
ii  libsox-fmt-alsa     14.3.2-3    SoX alsa format I/O library
ii  libsox-fmt-ao       14.3.2-3    SoX Libao format I/O library
ii  libsox-fmt-base     14.3.2-3    Minimal set of SoX format libraries
ii  libsox-fmt-ffmpeg   14.3.2-3    SoX ffmpeg format library
ii  libsox-fmt-mp3      14.3.2-3    SoX MP3 format library
ii  libsox-fmt-oss      14.3.2-3    SoX OSS format I/O library
ii  libsox-fmt-pulse    14.3.2-3    SoX PulseAudio format I/O library
ii  libsox1b            14.3.2-3    SoX library of audio effects and processing
ii  sox                 14.3.2-3    Swiss army knife of sound processing
Run Code Online (Sandbox Code Playgroud)

以及libasound2-pluginslibasound2-python包.我甚至拉了SoX源并将〜/ sox/src/sox.h添加到我的PATH,都无济于事.确实,a find找不到sox.h,即使我的二进制文件看起来都井井有条.pysox源似乎也没有包含sox.h.

pysox 官方页面指出"具体你需要在你的包含路径中使用sox.h,在你的链接路径中需要libsox.so和libsox.a".

但是除了从源代码编译所有内容之外,我不知道如何从二进制包中获取这些文件.是否无法使用普通的包管理器进行此安装,我是否需要自己编译,链接和包含所有内容?

如何在Debian/Ubuntu上正确安装pysox?

小智 7

如果有帮助,我遇到了同样的问题,但使用以下方法出错:

sudo apt-get install libasound2-plugins libasound2-python libsox-fmt-all libsox-dev sox
Run Code Online (Sandbox Code Playgroud)

我确实通过删除似乎不再可用的 libasound 请求来让它工作。

这对我有用……我认为这个过程是:

pip3 install sox

sudo apt-get install sox libsox-fmt-all 

sudo apt-get install sox libsox-dev 

pip3 install pysox
Run Code Online (Sandbox Code Playgroud)

我只花了大约 11 个小时来解决这个问题。


cne*_*uro 5

好的,这是预料之中的:忘了为SoX安装dev包,即libsox-dev.起初对我来说并不明显,因为标准软件包是sox,而lib软件包都是以libsox-fmt开头的(而且这方面的文档很少).

无论如何,这是你在Debian机器上需要的所有内容,以便为pip/easy_install提供适当的文件,以便为SoX正确管理模块:

sudo apt-get install libasound2-plugins libasound2-python libsox-fmt-all libsox-dev sox
Run Code Online (Sandbox Code Playgroud)