我正在尝试使用Paraview在远程linux机器上的非交互式PBS作业中生成图像。从命令行,如果我有一个名为cone.py
的文件,其中包含以下内容
from paraview.simple import *
Cone()
Show()
SaveScreenshot('cone.png')
然后在命令行中键入pvpython cone.py
,然后弹出一个窗口,显示锥形图像,并保存图像。我不希望窗口弹出。即使我使用pvbatch cone.py
或pvbatch cone.py --use-offscreen-rendering
,也会这样做。如果我尝试从PBS作业中运行此代码,则不会生成图像(可能是因为它无法生成窗口),并生成以下错误消息:
ERROR: In /home/kitware/Dashboards/buildbot/paraview-debian4dash-linux-shared-release_qt4_superbuild/source-paraview/VTK/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx, line 542
vtkXOpenGLRenderWindow (0x139559c0): bad X server connection. DISPLAY=/var/spool/PBS/mom_priv/jobs/1443323.rrlogin.internal.SC: line 8: 21926 Aborted pvbatch cone.py
/home/kitware
不是我计算机上的有效目录。任何帮助将不胜感激。
答案 0 :(得分:2)
如果远程Linux机器安装了X,则需要在运行pvbatch之前设置DISPLAY变量。如果远程Linux机器没有安装X,则需要使用OSMesa构建(信息和路线here)。
答案 1 :(得分:1)
您似乎正在使用官方ParaView二进制文件来处理非交互式PBS作业,该作业没有可访问的X服务器。您有两种选择:
您不能在无X系统上使用paraview.org上分发的二进制文件。除非使用OSMesa支持构建(在这种情况下不需要命令行选项),Select
t.Surname || ', ' || t.First_name AS Name,
t.account_description
from wgb_account t
join (
select MIN(Balance) min_bal, account_type
from wgb_account
Group by account_type
) x
on x.min_bal = t.Balance
and x.account_type = t.account_type
仍然需要访问X服务器才能创建OpenGL上下文。如果你想知道为什么命令行选项呢?避免在启用X的系统上创建弹出窗口。