以前我一直在使用由Mac端口維護的python環境。我有一些使用PyQT,VTK,matplotlib等基本腳本。我已經能夠使用Paraview,但似乎有點沉重,因爲我儘管我會嘗試MayaVi2(和TVTK)。如何讓MayaVi2默認/使用Qt而不是wx?
我下載並嘗試手動安裝,但它證明麻煩。所以我以爲我會咬緊牙關,嘗試Canopy(學術執照)。基於這個建議在Qt,VTK和MayaVI世界中都很好的VTK/Mayavi on Mac OS X,我安裝了64位Canopy。
我無法讓Canavi2在Canopy環境中工作。它運行,但控制檯獲取很多錯誤,如果我調用任何對話框/設置框的「按鈕」無法正常工作。這裏是(一對夫婦屏幕充盈的),當我嘗試啓動mayavi2的第一個錯誤:
(Canopy 64bit) scratch_pad 501 $mayavi2 Traceback (most recent call last): File "/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", line 121, in _on_paint dc = wx.PaintDC(window)
其實我更感興趣的是TVTK,所以我嘗試了一些Mayavi的演示從網站圖庫http://docs.enthought.com/mayavi/mayavi/auto/examples.html少數我嘗試過一種工作,那就是他們顯示一個VTK(?)窗口/場景,我可以與VTK窗口進行交互。直到我打開設置/對話窗口,然後沒有任何對話窗口「按鈕」工作,我必須強制退出。這是錯誤的最後一行,當我在plot3D demo打開「設置」按鈕:
simple demo: File "/Users/michael/Library/Enthought/Canopy_64bit/System/lib/python2.7/site-packages/wx/_core.py", line 9162, in DestroyChildren return core.Window_DestroyChildren(*args, **kwargs) wx._core.PyAssertionError: C++ assertion "GetEventHandler() == this" failed at /BUILD/wxPython-src-2.9.2.4/src/common/wincmn.cpp(468) in ~wxWindowBase(): any pushed event handlers must have been removed
我甚至嘗試
ipython --gui=wx
(如建議在頁面上),但在這種情況下,它崩潰,沒有窗戶。
基於控制檯上的錯誤消息,它們看起來都是wx相關的。我的理解是Canopy環境是「獨立的」,但是我的舊環境可能會以某種方式相互衝突?我怎麼會測試這個呢?
有沒有一種方法,環境變量,mayavi2可以使用Qt而不是wx?我不會在我的任何本地python腳本中使用wx,因此除非在Canopy中需要,否則我很樂意禁用,如果這是一個選項。
任何想法?
請發表您的編輯作爲答案,它可以回答你自己的問題。 – 2013-05-03 17:51:53