簡體   English   中英

Python / Mayavi / VTK錯誤:導入的VTK版本與TVTK類不匹配

[英]Python/Mayavi/VTK Error: Imported VTK version does not match TVTK classes

當我使用mayavi(4.3.1)可視化網格時,它會發出以下警告:


警告:導入的VTK版本(5.1)與用於構建TVTK類的版本(6.3)不匹配。 這可能會導致問題。 請重建TVTK。


我的系統:MS Windows 7 64位,Anaconda 4.3.1(最新版本),

<code>
$ conda list qt
# packages in environment at C:\ProgramData\Anaconda2:
#
pyqt                      4.11.4                   py27_7    anaconda
qt                        4.8.7                     vc9_9  [vc9]  anaconda
qtawesome                 0.4.3                    py27_0
qtconsole                 4.2.1                    py27_0    anaconda
qtpy                      1.2.1                    py27_0

$ conda list vtk
# packages in environment at C:\ProgramData\Anaconda2:
#
vtk                       5.10.1                   py27_0    anaconda

$ conda list mayavi
# packages in environment at C:\ProgramData\Anaconda2:
#
mayavi                    4.5.0                     <pip>
</code>

我搜索了論壇,但大多數答案都把它視為4年前VTK中的一個錯誤,例如, Mayavi中的TVTK錯誤(Python) 我不確定它是否有一個堅定的解決方案。 在我的計算機中,確實有另一個版本的VTK(版本> 6),但它是用C ++編寫的,與python和Mayavi沒有任何關系。

我運行Maya示例代碼時遇到的錯誤如下(由於我的VTK是5.10(如上所述),警告消息非常混亂,而且版本5.1的版本很奇怪),

<code>
>>> runfile('D:/flex_8state/code/spherical_harmonics.py', wdir='D:/flex_8state/code')
********************************************************************************
WARNING: Imported VTK version (5.1) does not match the one used
         to build the TVTK classes (6.3). This may cause problems.
         Please rebuild TVTK.
********************************************************************************

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
    execfile(filename, namespace)
  File "C:\ProgramData\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 87, in execfile
    exec(compile(scripttext, filename, 'exec'), glob, loc)
  File "D:/flex_8state/code/spherical_harmonics.py", line 36, in <module>
    mlab.figure(1, bgcolor=(1, 1, 1), fgcolor=(0, 0, 0), size=(400, 300))
  File "C:\ProgramData\Anaconda2\lib\site-packages\mayavi\tools\figure.py", line 85, in figure
    engine.new_scene(name=name, size=size)
  File "C:\ProgramData\Anaconda2\lib\site-packages\apptools\scripting\recordable.py", line 45, in _wrapper
    result = func(*args, **kw)
  File "C:\ProgramData\Anaconda2\lib\site-packages\mayavi\core\engine.py", line 452, in new_scene
    viewer = self.scene_factory(**factory_kwargs)
  File "C:\ProgramData\Anaconda2\lib\site-packages\mayavi\core\ui\mayavi_scene.py", line 89, in viewer_factory
    viewer.open()
  File "C:\ProgramData\Anaconda2\lib\site-packages\pyface\i_window.py", line 166, in open
    self._create()
  File "C:\ProgramData\Anaconda2\lib\site-packages\pyface\ui\qt4\application_window.py", line 121, in _create
    contents = self._create_contents(self.control)
  File "C:\ProgramData\Anaconda2\lib\site-packages\tvtk\tools\ivtk.py", line 404, in _create_contents
    self.scene = self._scene_factory(parent)
  File "C:\ProgramData\Anaconda2\lib\site-packages\mayavi\core\ui\mayavi_scene.py", line 68, in mayavi_scene_factory
    s = MayaviScene(parent, stereo=p['stereo'])
  File "C:\ProgramData\Anaconda2\lib\site-packages\tvtk\pyface\ui\qt4\decorated_scene.py", line 59, in __init__
    super(DecoratedScene, self).__init__(parent, **traits)
  File "C:\ProgramData\Anaconda2\lib\site-packages\tvtk\pyface\ui\qt4\scene.py", line 325, in __init__
    self.picker = picker.Picker(self)
  File "C:\ProgramData\Anaconda2\lib\site-packages\tvtk\pyface\picker.py", line 260, in __init__
    configure_input(self.p_mapper, self.p_source)
  File "C:\ProgramData\Anaconda2\lib\site-packages\tvtk\common.py", line 88, in configure_input
    inp.input = op.output
  File "C:\ProgramData\Anaconda2\lib\site-packages\traits\trait_handlers.py", line 104, in _read_only
    name, class_of( object ) )
traits.trait_errors.TraitError: The 'input' trait of a PolyDataMapper instance is 'read only'.
</code>

經過3天的艱苦努力,我找到了一個解決方法,我在這里發布了對類似的受害者有所幫助。 我強烈建議Mayavi / TVTK的開發人員更加關注這個bug。

這篇文章給了我很多幫助, https://github.com/ContinuumIO/anaconda-issues/issues/1510 相同的初始安裝,然后更新(我的初始帖子)VTK從5到6,如https://repo.continuum.io/pkgs/free/win-64/中所列。 基於python / VTK版本的更改的SetInputConnection / SetInputData接口的內在錯誤。

主要關注點

  1. 在我的筆記本電腦中,相同的安裝(如上面的帖子)確實有效。 我不是為什么。
  2. 在我的PC中,在達到解決方法之前,當我通過conda直接安裝VTK-6時,它無法正常工作並提示“...缺少模塊”(抱歉,我沒有記錄這些錯誤)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM