6

以前は、Mac ポートによって維持される python 環境を使用していました。PyQT、VTK、matplotlib などを使用したいくつかの基本的なスクリプトがありました。Paraview を使用できましたが、使用するには少し重いように見えるので、MayaVi2 (および TVTK) を試してみます。

ダウンロードして手動でインストールしようとしましたが、面倒でした。だから私は弾丸を噛んでキャノピー(アカデミックライセンス)を試してみようと思いました。このMac OS X 上の VTK/Mayavi に基づいて、Qt、VTK、および MayaVI の世界ですべてが適切であることを示唆し、64 ビット Canopy をインストールしました。

canopy 環境で mayavi2 を動作させるのに問題があります。実行されますが、コンソールに多くのエラーが発生します。ダイアログ/設定ボックスを呼び出すと、「ボタン」が正しく機能しません。mayavi2 を起動しようとしたときの最初のエラー (いくつかの画面フル) は次のとおりです。

(Canopy 64bit) scratch_pad 501 $mayavi2 トレースバック (最新の呼び出しが最後): ファイル "/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site -packages/pyface/ui/wx/splash_screen.py"、121 行目、_on_paint dc = wx.PaintDC(window) 内

私は実際には TVTK にもっと興味があるので、ウェブサイト ギャラリーhttp://docs.enthought.com/mayavi/mayavi/auto/examples.htmlからいくつかの mayavi デモ を試してみました。 VTK (?) ウィンドウ/シーンが表示され、VTK ウィンドウと対話できます。設定/ダイアログウィンドウを開くまではすべて問題ありませんが、ダイアログウィンドウの「ボタン」が機能せず、強制終了する必要があります。plot3Dデモで「設定」ボタンを開いたときのエラーの最後の行は次のとおりです。

簡単なデモ: ファイル "/Users/michael/Library/Enthought/Canopy_64bit/System/lib/python2.7/site-packages/wx/_core.py"、9162 行目、DestroyChildren でcore .Window_DestroyChildren(*args, **を返す) kwargs) wx._core.PyAssertionError: C++ アサーション "GetEventHandler() == this" が ~wxWindowBase() の /BUILD/wxPython-src-2.9.2.4/src/common/wincmn.cpp(468) で失敗しました: プッシュされたイベントハンドラーは削除されている必要があります

私も試してみました

ipython --gui=wx

(ページで提案されているように)しかし、この場合はクラッシュし、ウィンドウはありません。

コンソールのエラー メッセージに基づいて、それらはすべて wx に関連しているように見えます。Canopy 環境が「自己完結型」であることは理解していますが、私の古い環境は何らかの形で競合している可能性がありますか? どうすればこれをテストできますか?

mayavi2 が wx の代わりに Qt を使用できる方法、環境変数はありますか? 私は自分のローカル Python スクリプトで wx を使用していないので、Canopy で必要でない限り、オプションである場合は喜んで無効にします。

何か案は?

4

1 に答える 1

9

Mayavi Galleryでほとんどの例を実行した後、Qt を使用するには Traits に通知する必要があることがわかりました。これは、sys.environment() 呼び出しを使用してスクリプト内から環境変数を設定することによって行われました。次のように、環境変数 ETS_TOOLKIT を .profile で qt4 に設定することにしました:**

export ETS_TOOLKIT=qt4

Mayavi2 が広告どおりに動作するようになりました。

于 2013-05-04T01:42:11.937 に答える