首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Python IDLE控制Paraview GUI

从Python IDLE控制Paraview GUI
EN

Stack Overflow用户
提问于 2017-07-21 19:38:17
回答 2查看 804关注 0票数 3

我正在尝试使用IDLE交互地控制Paraview。这需要从IDLE发送命令并查看Paraview中发生的更改。我不想使用Paraview中的python shell。

到目前为止,我已经成功地导入了Paraview模块(简单的servermanager…等)从空闲。但是,发送的命令不会反映在Paraview中。例如:

代码语言:javascript
复制
>>> from paraview.simple import *
>>> cone = Cone()
>>> Show()
>>> Render()

确实创造了一个圆锥体。但是,圆锥体将输出到新的独立OpenGL窗口,而不是Paraview GUI。

可以使用IDLE以交互方式控制Paraview吗?如果是这样,如何做到这一点呢?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-25 22:32:15

您需要在多客户端/服务器模式下运行paraview。在终端中运行pvserver。

代码语言:javascript
复制
./bin/pvserver --multi-clients

在另一个终端中,运行paraview并连接到服务器

代码语言:javascript
复制
./bin/paraview
File->Connect
AddServer -> Choose a name -> Configure -> Save
Connect

在第三个终端中,运行pvpython (或您自己配置的python)

代码语言:javascript
复制
./bin/pvpython
>> from paraview.simple import *
>> Connect("localhost")
>> Cone()
>> Show()
票数 5
EN

Stack Overflow用户

发布于 2019-02-08 15:04:49

我在我的系统python上构建了paraview,这样我就可以使用ipython和其他包。我只需将PYTHONPATH设置为指向paraview python站点包,并将LD_LIBRARY_PATH设置为指向paraview lib目录。

代码语言:javascript
复制
export PYTHONPATH=/path/to/paraview/install/lib/python2.7/site-packages
export LD_LIBRARY_PATH=/path/to/paraview/install/lib
代码语言:javascript
复制
$ ipython 
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15) 
Type "copyright", "credits" or "license" for more information.

IPython 5.5.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: from paraview.simple import *

In [2]: Connect("localhost")
Out[2]: Connection (cs://localhost:11111) [2]

In [3]: Cone()
Out[3]: <paraview.servermanager.Cone at 0x7f30716cde10>

In [4]: Show()
Out[4]: <paraview.servermanager.GeometryRepresentation at 0x7f307167b210>

In [5]: GetSources()
Out[5]: {('Cone1', '8803'): <paraview.servermanager.Cone at 0x7f30716cde10>}

In [6]: GetActiveSource()
Out[6]: <paraview.servermanager.Cone at 0x7f30716cde10>

Screen shot of the rendered cone from the ipython paraview client

我的paraview版本是从Ubuntu18.04上的master构建的。

我遇到的唯一问题是python site-packages/paraview/modules目录中缺少一个__init__.py文件。

代码语言:javascript
复制
In [1]: from paraview.simple import *
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-cc11d49fb28b> in <module>()
----> 1 from paraview.simple import *

/home/dustin/repos/paraview_builds/master/install/lib/python2.7/site-packages/paraview/simple.py in <module>()
     39 
     40 import paraview
---> 41 from paraview import servermanager
     42 import paraview._backwardscompatibilityhelper
     43 

/home/dustin/repos/paraview_builds/master/install/lib/python2.7/site-packages/paraview/servermanager.py in <module>()
     54 from paraview import _backwardscompatibilityhelper as _bc
     55 
---> 56 from paraview.modules.vtkPVServerImplementationCore import *
     57 from paraview.modules.vtkPVClientServerCoreCore import *
     58 from paraview.modules.vtkPVServerManagerCore import *

ImportError: No module named modules.vtkPVServerImplementationCore

我只需在paraview/modules目录中创建一个__init__.py文件即可解决此问题:

代码语言:javascript
复制
touch /path/to/paraview/install/lib/python2.7/site-packages/paraview/modules/__init__.py
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45236721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档