4

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

$ 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

我的系统已安装:

$ 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

以及libasound2-pluginslibasound2-python包。我什至提取了 SoX 源并将 ~/sox/src/sox.h 添加到 myPATH中,但均无济于事。确实,afind没有找到 sox.h,尽管我的二进制文件看起来都井然有序。pysox 源似乎也不包含 sox.h。

pysox官方页面指出“特别是您的包含路径中需要 sox.h,链接路径中需要 libsox.so 和 libsox.a。”

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

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

4

2 回答 2

7

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

sudo apt-get install libasound2-plugins libasound2-python libsox-fmt-all libsox-dev sox

我确实通过放弃似乎不再可用的 libasound 请求让它工作了。

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

pip3 install sox

sudo apt-get install sox libsox-fmt-all 

sudo apt-get install sox libsox-dev 

pip3 install pysox

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

于 2018-09-28T16:30:16.057 回答
5

好的,这是意料之中的:忘记安装 SoX 的开发包,即 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
于 2013-02-11T12:51:38.477 回答