PyCharm(コミュニティ版2016.2.3)では、anaconda2 + ubuntu 14.04を使用して、import matplotlib
は、デバッグモード中にシグナル11エラーを引き起こします。リリースモードでスクリプトを実行しても問題ありません。
pythonコード:
import matplotlib as pt
デバッグコンソール:
Pydevデバッガー(ビルド162.1967.10)に接続GLib-GIO-Message: 'memory' GSettingsバックエンドを使用。設定は保存されず、他のアプリケーションと共有されません。バックエンドQt4Aggはインタラクティブなバックエンドです。インタラクティブモードをオンにします。
プロセスは終了コード139で終了しました(シグナル11:SIGSEGVによって中断されました)
同じエラーメッセージが表示されました。私はanacondaを削除して代わりにminicondaをインストールし、pycharmを再インストールしました。終了コード139は、pythonコンソールとデバッグコンソールの両方を実行しているときに発生しました。
今私がmatplotlibをインポートするとき、私はまだメッセージを得ます:
バックエンドQt4Aggはインタラクティブなバックエンドです。インタラクティブモードをオンにします。
GLib-GIO-Message: 'memory' GSettingsバックエンドの使用。設定は保存されず、他のアプリケーションと共有されません。
それは理想的ではないと思いますが、終了コードを取得しておらず、すべてが機能しているようです。これは解決策ですが、より堅牢な方法が必要です。
少し遅いですが、それは一部のグーグルを助けるかもしれません。
Qtはこの問題を引き起こす可能性があります。 PyCharmはデフォルトで--qt-support = autoで実行されます。 python Qt4とQt5のバインディングがインストールされている場合、auto関数は正しいバージョンのQtを選択しない可能性があります。PyCharm設定(ビルド、例...-> Pythonデバッガ-PyQt互換)
AutoからPyQt4への設定は、何も削除せずにconda環境で機能しました。
PyCharm設定(ビルド、例...-> Python Debugger)のQtボックスのチェックを外すことで、segfaultとコード139をなんとか取り除くことができました。リモートインタープリターいくつかの図のためだけに必要なmatplotlib.
Qtバックエンドを別のバックエンドに切り替えることで、手早く簡単な回避策が得られます。たとえば、Matplotlibをインポートした直後にこれを追加します。
matplotlib.use('TkAgg')
利用可能なバックエンド の別の1つを使用することもできます。
Matplotlibの依存関係を持つさまざまなモジュールがあり、コードを汚染したくない場合、またはチームで作業している場合は、 matplotlibrc
のバックエンドを変更することをお勧めします=。あなたはあなたが使っているmatplotlibrcを見つけることができます:
import matplotlib
print(matplotlib.matplotlib_fname())
私はpyqt5バインディングを削除した後に動作しました。
Sudo apt-get remove python3-pyqt5
私の場合は、pandasパッケージが原因でした。おそらく、スレッド化でデータフレームを実行していたのでしょう(サポートされていません!))。
原因を見つけるには、次のようにします。
gdb python
(gdb) script.py
(そしてそれがクラッシュしたとき)
where
スタックトレースが表示されます。私の場合、numpyに欠落しているファイルがあり、これは次の方法で修正されました
pip install --uppandas
matplotlibをインポートする
次に、この文を使用します... matplotlib.use( 'TkAgg')