我有一个巨大的文件需要在远程计算机上解析和渲染,我已经使用 mayavi 编写了脚本来完成此操作。我想做的是将图像保存为 png,然后复制图像并在本地查看。通过将后端设置为“Agg”,使用 matplotlib 可以非常简单地完成此操作,但是我在使用 Mayavi 执行此操作时遇到了一些严重的问题。我已按照此处的指南进行操作
http://docs.enthought.com/mayavi/mayavi/tips.html
但问题是单独导入 mlab 需要访问 xdisplay,所以我什至无法按照建议打开虚拟窗口。
要重现此情况,请通过 ssh 访问计算机并运行一个简单的 python 脚本,例如:
#!/usr/bin/python
from mayavi import mlab
并且它会因标准而出错;
Unable to access the X Display, is $DISPLAY set properly?
如果有人能解决这个问题,或者有远程渲染 3D 图像的替代方法,我将不胜感激。 matplotlib 提供的 3D 渲染不足以满足我的需要,因此任何有关 mayavi 的工作替代方案的建议也将不胜感激。
最佳答案
如果您在运行 X 服务器的 *nix 平台上,请使用 rendering using the virtual framebuffer 下文档中的解决方案。正如 dpinte 上面评论的那样。我之前已经成功地使用过这个方法来 headless 运行mayavi脚本。
基本思想是启动一个虚拟X服务器,例如Xvfb,然后在虚拟X服务器的显示上下文中调用mayavi(是的,这个解释不太正确,但足够了)。
关于python - 使用 mayavi 和 python 远程绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23704892/