работал на меня. Было предупреждение, но на Raspberry pi3 работает нормально (ОС: raspbian-jessie)

аюсь запустить librosa на моем Raspberry Pi 3. После нескольких часов поиска в Интернете я наконец смог установить его, но он все равно выдает ошибку, когда я пытаюсь импортировать его. Во-первых, у меня были проблемы с установкой зависимости llvmlite. Я наконец установил его с помощью следующего кода: conda install -c numba llvmlite Я использую Python 3.4 build с Miniconda.

После установки llvmlite я смог установить librosa с помощью pip (невозможно с conda)

[email protected]:~ $ pip install librosa
Collecting librosa
Using cached https://www.piwheels.hostedpi.com/simple/librosa/librosa-
0.5.1-py3-none-any.whl
Requirement already satisfied: resampy>=0.1.2 in 
./miniconda3/lib/python3.4/site-packages (from librosa)
Requirement already satisfied: scipy>=0.13.0 in 
...
Installing collected packages: librosa
Successfully installed librosa-0.5.1

Видимо librosa установлена.

[email protected]:~ $ pip list
DEPRECATION: The default format will switch to columns in the future. 
You can use --format=(legacy|columns) (or define a format=
(legacy|columns) in your pip.conf under the [list] section) to disable 
this warning.
anaconda-client (1.0.2)
audioread (2.1.5)
awscli (1.11.170)
boto3 (1.4.7)
botocore (1.7.28)
clyent (0.4.0)
colorama (0.3.7)
conda (3.16.0)
conda-env (2.4.2)
Cython (0.27.1)
decorator (4.1.2)
docutils (0.14)
jmespath (0.9.3)
joblib (0.11)
librosa (0.5.1)
llvmlite (0.7.0.dev0+21.gcda19bd.dirty)
mock (2.0.0)
numba (0.35.0)
numpy (1.13.3)
pbr (3.1.1)
Pillow (2.9.0)
pip (9.0.1)
protobuf (3.4.0)
pyasn1 (0.3.7)
PyAudio (0.2.11)
pycosat (0.6.1)
pycrypto (2.6.1)    
python-dateutil (2.6.1)
pytz (2015.4)
PyYAML (3.12)
requests (2.7.0)
resampy (0.2.0)
rsa (3.4.2)
s3transfer (0.1.11)
scikit-learn (0.18.2)
scipy (0.19.1)
setuptools (18.1)
six (1.11.0)
tensorflow (1.1.0)
Werkzeug (0.12.2)
wheel (0.30.0)

Попытка импортировать librosa приводит к следующей ошибке:

[email protected]:~ $ python
Python 3.4.3 |Continuum Analytics, Inc.| (default, Aug 21 2015, 00:53:08) 
[GCC 4.6.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import librosa
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/pi/miniconda3/lib/python3.4/site-packages/librosa/__init__.py", line 12, in <module>
    from . import core
  File "/home/pi/miniconda3/lib/python3.4/site-packages/librosa/core/__init__.py", line 108, in <module>
    from .time_frequency import *  # pylint: disable=wildcard-import
  File "/home/pi/miniconda3/lib/python3.4/site-packages/librosa/core/time_frequency.py", line 10, in <module>
    from ..util.exceptions import ParameterError
  File "/home/pi/miniconda3/lib/python3.4/site-packages/librosa/util/__init__.py", line 70, in <module>
    from . import decorators
  File "/home/pi/miniconda3/lib/python3.4/site-packages/librosa/util/decorators.py", line 67, in <module>
    from numba.decorators import jit as optional_jit
  File "/home/pi/miniconda3/lib/python3.4/site-packages/numba/__init__.py", line 12, in <module>
    from .special import typeof, prange
  File "/home/pi/miniconda3/lib/python3.4/site-packages/numba/special.py", line 4, in <module>
    from .parfor import prange
  File "/home/pi/miniconda3/lib/python3.4/site-packages/numba/parfor.py", line 20, in <module>
    from numba import array_analysis, postproc, typeinfer
  File "/home/pi/miniconda3/lib/python3.4/site-packages/numba/array_analysis.py", line 9, in <module>
    from numba import ir, analysis, types, config, cgutils, typing
  File "/home/pi/miniconda3/lib/python3.4/site-packages/numba/cgutils.py", line 22, in <module>
    true_bit = bool_t(1)
TypeError: 'IntType' object is not callable
>>> 

При попытке импортировать numba выдается следующая ошибка:

[email protected]:~ $ python
Python 3.4.3 |Continuum Analytics, Inc.| (default, Aug 21 2015, 00:53:08) 
[GCC 4.6.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numba
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/pi/miniconda3/lib/python3.4/site-packages/numba/__init__.py", line 12, in <module>
    from .special import typeof, prange
  File "/home/pi/miniconda3/lib/python3.4/site-packages/numba/special.py", line 4, in <module>
    from .parfor import prange
  File "/home/pi/miniconda3/lib/python3.4/site-packages/numba/parfor.py", line 20, in <module>
    from numba import array_analysis, postproc, typeinfer
  File "/home/pi/miniconda3/lib/python3.4/site-packages/numba/array_analysis.py", line 9, in <module>
    from numba import ir, analysis, types, config, cgutils, typing
  File "/home/pi/miniconda3/lib/python3.4/site-packages/numba/cgutils.py", line 22, in <module>
    true_bit = bool_t(1)
TypeError: 'IntType' object is not callable
>>> 

Кто-нибудь знает, в чем может быть проблема? Я благодарен за любые подсказки или советы. Спасибо!!!!!

Ответы на вопрос(3)

Решение Вопроса

так чтоэтот комментарий github вам нужно установить llvmlite v0.15.0 с numba v0.30.1. Если вы используете другую версию llvm, вам нужно будет изучить, какие версии llvmlite и numba использовать с этой версией llvm. Вот команды, которые заставили меня настроить, чтобы получить успешныйimport librosa:

sudo apt install libblas-dev llvm python3-pip python3-scipy
virtualenv --system-site-packages -p python3 env
source env/bin/activate
pip install llvmlite==0.15.0
pip install numba==0.30.1
pip install librosa

Обратите внимание, что я использую virtualenv и перетаскиваю scipy и numpy из системных пакетов, в противном случае трудно получить правильные зависимости fortran & c плюс те, которые требуются для компиляции на RPi. Если вы хотите установить общесистемную систему, отбросьте 2-ю и 3-ю строку и поставьтеsudo напротивpip команды. Я также заморозил свои требования в этомrequirements.txt файл, так что если вы загрузите его, то вы можете запустить одну командуpip install -r requirements.txt

 Ronja Jösch23 окт. 2017 г., 04:19
Это сработало. Спасибо вам большое!
 Sreehari R12 нояб. 2017 г., 22:00
Я пробовал это, но получаю следующее: ошибка: root @ raspberrypi: / home / pi # sudo pip3 install llvmite == 0.15.0 Загрузка / распаковка llvmite == 0.15.0 Не удалось найти файлы для загрузки, которые удовлетворяют требованию llvmite == 0.15.0 Очистка ... Не найдено никаких дистрибутивов для llvmite == 0.15.0 Сохранение журнала отладки для сбоя в /root/.pip/pip.log
 Matthew Berryman14 нояб. 2017 г., 00:42
Похоже, это просто опечатка, это должно быть llvmlite == 0.15.0, но вы написали llvmite == 0.15.0
 Sreehari R26 нояб. 2017 г., 07:11
@MatthewBerryman Я пытаюсь сделать это на своем Rpi3 и получаю следующую ошибку: Команда "/ usr / bin / python -u -c" импортирует setuptools, tokenize; __ file __ = '/ tmp / pip-build-DApH0j / llvmlite /setup.py';f=getattr(tokenize, 'open', open) (файл); code = f.read (). replace ('\ r \ n', '\ n'); f.close (); exec (скомпилировать (code,файл, 'exec')) "install --record /tmp/pip-UCWh1n-record/install-record.txt --single-version-внешне управляемый --compile" завершился ошибкой с кодом ошибки 1 в / tmp / pip-build -DApH0j / llvmlite /
 Matthew Berryman27 нояб. 2017 г., 07:17
@SreehariR очень сложно сказать без журнала ошибок от pip. Можете ли вы вставить здесь (или, если он не подходит, вставить в другое место и ссылку)? Просто проверяя, что вы запустили командуsudo apt install libblas-dev llvm python3-pip python3-scipy установить llvm? Возможно, вам придется добавить llvm-dev в этот список пакетов.

ты меня перебрал! На последнем выпуске Raspian (растяжка) я добился успеха после нескольких часов разочарования в попытке установить librosa на Raspian Jessie (с которым поставлялся мой RPi3). Сказав это, следующая процедура может также работать с Джесси.

Сначала обновите список пакетов вашей системы и обновите все установленные пакеты до последних версий с помощью команды:

sudo apt-get update
sudo apt-get dist-upgrade

Установите научный стек Python:

sudo pip3 install numpy --upgrade 
sudo apt-get install python3-pandas

(Также, кажется, установить Matplotlib, Scipy)

sudo apt-get install python3-sklearn

Затем установите низкоуровневую виртуальную машину LLVM (для @MatthewBerryman я использовал llvm 3.8 и llvmlite 0.15.0, а не новейшую комбинацию, в которой я не смог найти пакеты.) После установки llvm-3.8, символическая ссылка Необходимо определить перед установкой llvmlite.

sudo apt-get install llvm-3.8
sudo ln -s /usr/bin/llvm-config-3.8 /usr/bin/llvm-config
sudo pip3 install llvmlite==0.15.0
sudo pip3 install numba==0.32.0

Numba - 0.32.0, потому что, если это самая новая версия (0.36), она не будет импортирована из-за несоответствия llvm, а если это более низкая версия, то установка librosa обновит ее до последней версии.

Наконец, установите librosa:

sudo pip3 install librosa

Однако при попытке импортировать либроса он все равно выкидывает и выдает ошибку, а именно

ImportError: libf77blas.so.3: cannot open shared object file: No such file or directory

Поиск этой ошибки в Google показал, что это исправит:

sudo apt-get install libatlas-base-dev

И это сделал; Однако я понятия не имею, почему.

Подводя итог, эта процедура устанавливает librosa, и при попытке этого не возникает ошибки:

...$ python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
...
>>>import librosa
>>>

sudo pip install librosa==0.4.2 работал на меня. Было предупреждение, но на Raspberry pi3 работает нормально (ОС: raspbian-jessie)

Ваш ответ на вопрос