【问题标题】:Installing pysox on ubuntu via pip install, cannot resolve sox.h通过 pip install 在 ubuntu 上安装 pysox,无法解析 sox.h
【发布时间】:2013-02-07 16:43:59
【问题描述】:

我正在尝试在 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 添加到我的PATH,但都无济于事。确实,find 没有找到 sox.h,尽管我的二进制文件看起来都井然有序。 pysox 源似乎也不包含 sox.h。

pysox offical page 声明“具体而言,您的包含路径中需要 sox.h,链接路径中需要 libsox.so 和 libsox.a。”

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

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

【问题讨论】:

    标签: python ubuntu pip sox


    【解决方案1】:

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

    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 个小时来解决这个问题。

    【讨论】:

      【解决方案2】:

      好的,这是意料之中的:忘记安装 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
      

      【讨论】:

      • 在 debian 和 ubuntu 上,头文件总是在一个 -dev 包中,你不需要包特定的文档。
      猜你喜欢
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 2016-04-06
      • 2016-02-16
      • 2022-06-13
      相关资源
      最近更新 更多