2016-08-21 3 views
0

После многих проблем я установил Librosa (https://github.com/librosa/librosa) на Linux Mint 18 Mate x64. Когда я хочу, чтобы запустить пример сценария, например: http://librosa.github.io/librosa/generated/librosa.feature.tempogram.html#librosa.feature.tempogram, он выходит из строя с ошибкой «Segmentation Fault»:«Ошибка сегментации» в примере выполнения matplotlib Пример сценария Librosa

$ python librosa-feature-tempogram-1.py 
/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_qt5.py:140: Warning: g_main_context_push_thread_default: assertion 'acquired_context' failed 
    qApp = QtWidgets.QApplication([str(" ")]) 
Segmentation fault 

Я пытался отладить линию за линией, и есть результат:

$ python 
Python 2.7.12 (default, Jul 1 2016, 15:12:24) 
[GCC 5.4.0 20160609] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import librosa 

>>> # Visualize an STFT power spectrum 
... 
>>> import matplotlib.pyplot as plt 
>>> y, sr = librosa.load(librosa.util.example_audio_file()) 

>>> plt.figure(figsize=(12, 8)) 
/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_qt5.py:140: Warning: g_main_context_push_thread_default: assertion 'acquired_context' failed 
    qApp = QtWidgets.QApplication([str(" ")]) 
Segmentation fault 

Возможно, есть проблема с библиотекой matplotlib и Qt (5.7.0). Более того, я помню, что у меня было много проблем при установке Librosa, включая matplotlib, поэтому это может быть проблема с установкой. Однако я не знаю, как его решить. Надеюсь, у кого-то будут полезные подсказки для меня.

ответ

0

Наконец, я решил эту проблему путем установки этих пакетов: sudo apt-get install tk-dev libpng-dev libffi-dev dvipng texlive-latex-base и переустановки Matplotlib с помощью пипа. Я также сменил фон в matplotlib на TkAgg. Существует начало кода с заявками на импорт:

import librosa 
import matplotlib 
matplotlib.use('TkAgg') 
import matplotlib.pyplot as plt 

Теперь он отлично работает.

Смежные вопросы