1

現在、Ubuntu 13.10 を使用しており、すべてのシステム アップデートを適用しています。Enthought Canopy (バージョン: 1.1.1.1452) をインストールしました。そして今日、プロットしようとしたとき、何も得られませんでした。グーグルで調べた後、コマンドラインで「ipython --pylab」を実行しましたが、次のメッセージが表示されました。

Matplotlib backend_wx and backend_wxagg require wxPython >=2.8

インタラクティブな ipython シェルに入ることができましたが、まだプロットできませんでした。

次に、ユーザー フォーラムのヒントに従い、'import wx' を試してみたところ、次の結果が得られました。

/usr/lib/x86_64-linux-gnu/libatk-1.0.so.0: undefined symbol: g_type_class_adjust_private_offset

しばらく前に Canopy のプロット機能を使用できたので、Ubuntu のシステム アップデートにより、現在の Canopy と何らかのライブラリ競合が発生したのではないかと考えています。

誰かがこれを解決するためのヒントを持っていますか? 皆様本当にありがとうございました!!

4

1 に答える 1

3

同じ問題、同じシステム (Ubuntu 13.10、Canopy 1.1.1.1452)、これでうまくいきました。この投稿によると、問題は次wxPythonCanopyとおりです。

「大規模な wx 固有のコード ベースを持たないユーザーには、wx ではなく Qt バックエンドを使用することをお勧めします。」

matplotlibQt を使って作業する (そして問題を解決する) ために、具体的にどのようにそれを行うことができるかを次に示します。現在使用matplotlib.get_backend()しているバックエンドを確認するには:

>>> import matplotlib
>>> matplotlib.get_backend()
'WXAgg'

上記のように表示されている場合は、次"WXAgg"のように使用して、matplotlib バックエンドを既知のバックエンドのいずれかに設定しmatplotlib.use()ます。

import matplotlib
matplotlib.use('QT4Agg')  

上記をスクリプトに追加するか、Python セッションの初期化時に追加できます。たとえば、次のように、エラーなしで読み込まれますpyplotpylab

import pylab  
from matplotlib import pylab                                       
from matplotlib import pyplot

更新

バックエンドを自動的に構成する便利な方法は、matplotlibrc構成ファイルを編集することです。Canopy の場合、ファイルは次の場所にあります。

~/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/mpl-data

matplotlibrc、次の行を置き換えます。

backend      : WXAgg

と:

backend      : Qt4Agg
于 2013-12-17T00:09:29.410 に答える