ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python-如何解决“ TraitError:…实例的’input’特性是’只读’.”

2019-11-19 04:59:19  阅读:541  来源: 互联网

标签:mayavi macports enthought python


与vtk的原始Python API相比,我一直更喜欢pythonic tvtk,但是使用从MacPorts获得的最新版本,我遇到了基本问题不再起作用的问题.以下代码段摘自tvtv documentation

from tvtk.api import tvtk
cs = tvtk.ConeSource()
cs.resolution = 36
m = tvtk.PolyDataMapper()
m.input = cs.output # <== fails here
a = tvtk.Actor()
a.mapper = m
p = a.property
p.representation = 'w'
print p.representation

每次初始化“输入”特征时,都会出现类似

TraitError: The 'input' trait of a PolyDataMapper instance is 'read only'.

我发现了许多类似的问题,错误报告等,但它们都指向与VTK 6(SetInputData和SetInputConnection而不是SetInput)有关的更改,而我有should be supported in Mayavi 4.4.2

vtk @6.3.0_0+python27 (active)
py27-traits @4.5.0_0 (active)
py27-traitsui @5.0.0_0 (active)
py27-apptools @4.3.0_0 (active)
py27-envisage @4.4.0_0 (active)
py27-pyface @5.0.0_0+pyqt4 (active)
py27-mayavi @4.4.3_0 (active)

PolyDataMapper具有以下输入特征:

'input': <traits.traits.CTrait at 0x11b23a260>,
'input_algorithm': <traits.traits.CTrait at 0x119516520>,
'input_as_data_set': <traits.traits.CTrait at 0x11b230470>,
'input_connection': <traits.traits.CTrait at 0x119516310>,
'input_executive': <traits.traits.CTrait at 0x1195165d0>,
'input_information': <traits.traits.CTrait at 0x119516680>,

解决方法:

Mayavi支持VTK 5.10和VTK 6.x,它们内部具有用于配置到管道的不同API. tvtk软件包具有一个公共API,该API支持两个版本以实现可移植性.

变更:

m.input = cs.output # <== fails here

至:

from tvtk.common import configure_input
tvtk.configure_input(m, cs) # <== will work

参考:https://github.com/enthought/mayavi/blob/master/tvtk/common.py#L79

标签:mayavi,macports,enthought,python
来源: https://codeday.me/bug/20191119/2033556.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有