24

virtualenv内にmatplotlibを正常にインストールしました。今、私はそれを描こうとしています。バックエンドを変更する方法は知っていますが、何に変更するかを理解するのに非常に苦労しています。

python3で完全に動作するようになった人はいますか? はいの場合、どのように?

私はたくさんのことを試しました。私はすべてのバックエンドを巡回して、すべての苦情が何であるかを確認しましたが、そのうちの 1 つだけを機能させようとしているわけではありません。

また、おそらく注目に値するのは、私の目標はそれを Pyramid アプリに統合することです。

これまでにすべての異なるバックエンドで起こったことは次のとおりです。

  • Agg: これはデフォルトのバックエンドでした。それは描かない
  • GTK: どうやら python3 に移植されていない pygtk が必要です
  • GTKAgg: 同上
  • GTKCairo: 'required package gtk' は上記の行に沿ったものを想定しています
  • FltkAgg: python3 バージョンがないようです。python3 UI FAQ に記載されていますが。それはただの騒動だったと思います。おやおや
  • MacOSX: ubuntu を実行しています。不適切であると仮定
  • QtAgg: pyqt が必要です。Qt4Agg を参照
  • Qt4Agg: virtualenv への PyQt4 のインストールを参照してください
  • TkAgg: ImportError: 名前 _tkagg をインポートできません。ただし、インタープリターで import tkinter を実行できるので、何が壊れているのかまだよくわかりません
  • WX: ImportError: Matplotlib の backend_wx と backend_wxagg には wxversion が必要ですが、見つかりませんでした
  • WXAgg: 同上
  • CocoaAgg: ImportError: CococaAgg バックエンドには PyObjC をインストールする必要がありました!
  • GTK3Cairo : ImportError: GTK3 バックエンドには pygobject をインストールする必要があります。私はそれをインストールしようとしましたが、正しいpythonで構成しようとすると、ヘッダーが見つからないと文句を言います
  • GTK3Agg: cairo という名前のモジュールがありません。しかし、私は上記と同じ問題にぶつかると思います
  • cairo: Cairo バックエンドには pycairo がインストールされている必要があります
  • emf:最初にhttp://pyemf.sf.netから pyemf をインストールする必要があります。それはwindowseyのことをすることになっているように見えるので、これは良い選択ではないかもしれません
  • gdk: gobject というモジュールがありません
  • pdf: 実行されますが、描画されません
  • pgf: 同上
  • 追伸:同上
  • svg: 同上
  • テンプレート: 同上 .

バックエンドをテストするために使用しているスクリプトは次のとおりです。

import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()

これまでのところ、私は python3.2 と qt4 をうまく動作させるためにあまりにも多くの時間を費やしてきました。そこで、試行錯誤のアプローチを続ける代わりに、次の質問をしたいと思います。

  1. Python3.2 と Pyramid の最適なオプションは何ですか?
  2. どうすれば実現できますか?

それまでの間、試行錯誤を続け、質問を更新します。

私が試していることに関するメモ

TkAgg の場合:

tkinter は正しくインポートされるので、正しくインストールされていると思います (間違っている場合は、テストする方法があると思いますか?)。この男http://ask.sagemath.org/question/626/sage-python-import-matplotlib-no-module-namedにも同様の問題がありましたが、彼のセットアップは私のものとは異なると確信しています。解決策は、python3.2 サイトのパッケージ ディレクトリの奥にある tkagg.py を見つけて、問題のあるインポート ステートメントを編集することでした。matplotlib の出荷が壊れているとは信じがたいです (そして、提案された変更されたコードを実行することはできません...)

WX の場合:

wxPython for Python 3によると、まだ python3 はサポートされていません。また、wxPython のサイトには python3 についての言及がないので、それは無理だと思います。オプションが不足しています:/

ココア:

同上: Python 3 での Cocoa アプリケーションの作成

起電力:

同上:http://pyemf.sourceforge.net/README.html

4

5 に答える 5

2

私はpython 3.3.2とmatplotlibのソースビルドを行っています。上記のように、TkAgg は機能します。すべてをソースからビルドする場合:

  1. sudo apt-get install tk-dev
  2. Python3 を再構築します (make clean; ./configure; make)
  3. matplotlib を消去します (virtualenv から卵を削除し、~/.config/matplotlib からキャッシュ オブジェクトを削除します)
  4. ソースから matplotlib を再構築しました (rm -r build/; python setup.py build; python setup.py install)

最後に、私の x=y 行で愚かなボックスがポップアップするのを見ました。

時間....

于 2013-07-29T03:42:20.677 に答える
1

Matplotlib は、 1.2.x リリースで Python 3 に向けて大きな一歩を踏み出したようです。matplotlib 1.2.0rc2 (+ numpy 1.7.0b2) は私のために働いています

  • Python 3.2.2 (Linux Mint 12 上の virtualenv)
  • Python 3.3.0 (ソースからのローカル インストール)

どちらの場合も、matplotlib は使用されたバックエンドとして「TkAgg」を報告します。

残念ながら、これが Pyramid でどのように機能するかはわかりません。

于 2012-10-24T08:57:10.387 に答える