我正在尝试使用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
我的系统已安装:
$ 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-plugins
和libasound2-python
个包。我甚至拉了SoX源并将〜/ sox / src / sox.h添加到我的PATH
,但都无济于事。确实,find
找不到sox.h,即使我的二进制文件看起来都井井有条。 pysox源似乎也没有包含sox.h。
pysox offical page声明“特别是你的包含路径中需要sox.h,链接路径中需要libsox.so和libsox.a。”
但是除了从源代码编译所有内容之外,我不知道如何从二进制包中获取这些文件。是否无法使用普通的包管理器进行此安装,我是否需要编译,链接和安装?包括我自己的一切?
如何在Debian / Ubuntu上正确安装pysox?
答案 0 :(得分: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
答案 1 :(得分:2)
如果有帮助,我也会遇到同样的问题,但使用以下方法会出错:
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个小时来解决这个问题。