2014年03月28日 星期五 00:27
请问如何绘制这样的三维图?
我觉得用mayavi应该可以。
今天试了一下,不知道从哪个版本开始,mayavi的用法跟RY大哥的书《python科学计算》里所讲的有了些差异。
我使用pythonxy2.7.5.1,spyder。下面是我遇到的一点问题:
下面两个语句可以导入mlab:
from enthought.mayavi import mlab
import mayavi.mlab as mlab
但是,都会报错:
....
sip.setapi('QString', 2)
ValueError: API 'QString' has already been set to version 1
因此我把这句话注释了。再运行,还报错:
sip.setapi('QVariant', 2)
ValueError: API 'QVariant' has already been set to version 1
我又把这句话注释了。
然后就可以运行了!!
运行书中图10-7的例子,可是结果却不太一样,运行出来的三维图好像在三维图中包括了黑色的网格线,样子比较丑。
而且控制窗口依然显示有错误:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\traits\trait_notifiers.py", line 381, in call_3
self.handler( object, old, new )
File "C:\Python27\lib\site-packages\tvtk\tvtk_classes.zip\tvtk_classes\camera.py", line 82, in _view_plane_normal_changed
self._do_change(self._vtk_obj.SetViewPlaneNormal,
AttributeError: SetViewPlaneNormal
2014年03月28日 星期五 06:25
你单独运行程序试试看,不在Spyder下运行。
另外你的tvtk和mayavi的版本是多少?
2014年03月28日 星期五 09:47
直接运行的结果和在spyder里运行结果是一样的。
RY大哥,您说的tvtk和mayavi应该都是和pythonxy一起装的吧,我的pythonxy是2.7.5.1
vtk版本5.10.1-3
mayavi版本:4.3.0
事实上,我试过pythonxy2.7的好几个版本,都存在这样的问题。
除了使用mayavi外,我还有别的更好的选择吗?
2014年03月28日 星期五 19:26
这里有个解决办法:
http://stackoverflow.com/questions/19477437/attributeerror-in-tvtk-about-setviewplanenormal
I found a way to get rid of the error but it is rather DIRTY: in PythonDIR\Lib\site-packages\tvtk_classes.zip\tvtk_classes\camera.py
edit function _view_plane_normal_changed
(line 81), comment the line inside self._do_change(self._vtk_obj.SetViewPlaneNormal, self.view_plane_normal)
and add return
. This solution is really temporary and I'm still looking for clean solution !
2014年03月29日 星期六 10:38
也没有解决啊???
没啥变化,还是老样子。我得放弃mayavi了…
2014年03月29日 星期六 13:02
我是用的winpython,
然后从
http://www.lfd.uci.edu/~gohlke/pythonlibs/
下载ETS安装的,没有出现过这种问题。
2014年04月01日 星期二 10:28
RY大哥,我想跟您学习,也是安个winpython,再装ets.
可是我卸载了pythonxy,装上了winpython,再装ets的时候竟然提示我
Python version 2.7 required, which was not found in the registry
不应该啊,在winpython的目录下面已经把python2.7.6.amd64装上了呀!而且winpython也可以用了。
接下来我该怎么办啊?
2014年04月02日 星期三 19:06
winpython下安装新的扩展库使用它自带的WinPython Control Panel.exe,
运行WinPython Control Panel.exe
然后点add packages按钮,选择你下载的ets安装包,然后点Install packages按钮即可。
winpython是便携的,其实你不需要卸载python(x,y),运行winpython目录下的exe文件,就都会使用它提供的Python环境。可以使用WinPython Control Panel.exe将winpython环境设置为默认的Python环境
Zeuux © 2024
京ICP备05028076号