matplotlib运行示例Librosa脚本中的“Segmentation Fault”

时间:2016-08-21 16:55:27

标签: python python-2.7 qt matplotlib librosa

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

private MyCountDownTimmer isTypingTimmer = new MyCountDownTimmer(1000, 1000);
private boolean isTyping = false;


editText_message.addTextChangedListener(new TextWatcher() {
  public void afterTextChanged(Editable s) {
  }

  public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  }

  public void onTextChanged(CharSequence s, int start, int before, int count) {
    isTypingTimmer.cancel();
    isTypingTimmer.start();
    if (!isTyping) {
      databaseReference.child("room-typing").child(room_name).child(user_id_or_name).setValue("true");
      isTyping = true;
    }
  }
});

我尝试逐行调试,结果是:

$ 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

matplotlib库和Qt(5.7.0)可能存在一些问题。此外,我记得我在安装Librosa时遇到了很多问题,包括matplotlib,因此可能会出现一些安装问题。但是,我不知道如何解决它。我希望有人会为我提供有用的线索。

1 个答案:

答案 0 :(得分:1)

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

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

现在它完美无缺。