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-plugins和libasound2-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 个小时来解决这个问题。
好的,这是预料之中的:忘了为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)