Установка pysox на ubuntu через pip install не может разрешить sox.h

Я пытаюсь установить пакет pysox с помощью pip (easy_install выдает точно такую ​​же ошибку) в Ubuntu 12.04.2 LTS.

$ 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.

На официальной странице говорится: "В частности, вам нужен sox.h в пути включения, а также libsox.so и libsox.a в вашем пути ссылки».

Но помимо компиляции всего из исходников, я не понимаю, как я могу получить эти файлы только из бинарных пакетов. Разве нельзя использовать обычные менеджеры пакетов для этой установки, мне нужно скомпилировать, скомпоновать и включить все самому?

Как правильно установить pysox на Debian/Ubuntu?


person cneuro    schedule 07.02.2013    source источник


Ответы (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 часов, чтобы разобраться с этим.

person user288150    schedule 28.09.2018

Ладно, этого и следовало ожидать: забыли установить dev-пакет для 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
person cneuro    schedule 11.02.2013
comment
В debian и ubuntu заголовки ВСЕГДА находятся в пакете -dev, для этого вам не нужна документация по конкретному пакету. - person LtWorf; 11.02.2013