【问题标题】:"Segmentation Fault" in matplotlib running example Librosa scriptmatplotlib 运行示例 Librosa 脚本中的“分段错误”
【发布时间】:2016-09-01 06:17:12
【问题描述】:

在遇到许多问题后,我在 Linux Mint 18 Mate x64 上安装了 Librosa (https://github.com/librosa/librosa)。当我想运行示例脚本时,例如:http://librosa.github.io/librosa/generated/librosa.feature.tempogram.html#librosa.feature.tempogram,它会因“Segmentation Fault”错误而崩溃:

$ 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,所以可能是一些安装问题。但是,我不知道如何解决它。我希望有人能给我一些有用的线索。

【问题讨论】:

    标签: python python-2.7 qt matplotlib librosa


    【解决方案1】:

    最后,我通过安装以下软件包解决了这个问题:sudo apt-get install tk-dev libpng-dev libffi-dev dvipng texlive-latex-base 并使用 pip 重新安装 matplotlib。我还在 TkAgg 上更改了 matplotlib 的背景。有一段带有 import 语句的代码开头:

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

    现在可以完美运行了。

    【讨论】:

    • 我遇到了类似的问题。我只需要matplotlib.use('TkAgg')
    猜你喜欢
    • 2016-04-20
    • 2022-11-10
    • 2011-04-15
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多