python安装numpy模块_Tecplot的Python模块:PyTecplot安装及应用
Tecplot 在2017版本之后加入了Python模块PyTecplot,可以通过编写Python脚本实现与GUI界面相同的操作,从而实现更加便捷的批处理及功能扩展。本文根据Tecplot官方指引详细介绍该模块的安装方法及初步应用。安装准备安装Tecplot 360 2017 R1以后版本,并可正常运行。安装Python 2.7 或3.6以后版本(仅支持64位)及依赖模块(推荐用pip安装):必
Tecplot 在2017版本之后加入了Python模块PyTecplot,可以通过编写Python脚本实现与GUI界面相同的操作,从而实现更加便捷的批处理及功能扩展。本文根据Tecplot官方指引详细介绍该模块的安装方法及初步应用。
安装准备
- 安装Tecplot 360 2017 R1以后版本,并可正常运行。
- 安装Python 2.7 或3.6以后版本(仅支持64位)及依赖模块(推荐用pip安装):
- 必备模块
- six
- pyzmq
- protobuf
- future(仅Python 2.7)
- contextlib2(仅Python 2.7)
- enum34(仅Python 2.7)
- 可选模块
- numpy(推荐安装)
- ipython
- pillow
- flatbuffers
- 必备模块
安装PyTecplot模块
- Windows
通pip进行安装:
python -m pip install pytecplot
通过本地安装包:
pytecplotpypi.org
下载后移到Tecplot安装目录下并运行:
cd "C:Program FilesTecplotTecplot 360 EX [VERSION]pytecplot"
python -m pip install .
使用批处理模式时运行Python脚本需要对环境变量进行设置,从而PyTecplot可以找到Tecplot的动态库。如果系统PATH列表中没有Tecplot bin文件夹的路径,则需要手动添加。
通过执行helloworld.py检查是否安装成功(代码见下文)。
- Linux
通pip进行安装:
pip install pytecplot
通过本地安装包(下载链接同上),下载后移到Tecplot安装目录下并运行:
cd /path/to/tecplot360/pytecplot
pip install .
使用批处理模式运行Python脚本同样需要对环境变量进行设置,将tecplot路径加到PATH中:
eval `/path/to/tecplot360/bin/tec360-env [options]`
通过执行helloworld.py检查是否安装成功(代码见下文)。
- Mac OSX
通过pip进行安装:
pip install pytecplot
通过本地安装包(下载链接同上),下载后移到Tecplot安装目录下并运行:
cd "/Applications/Tecplot 360 EX [VERSION]/pytecplot"
python -m pip install .
安装后同样需要设置环境变量,将tecplot路径加到PATH中:
eval `"/Applications/Tecplot 360 EX [VERSION]/bin/tec360-env"`
以上步骤完成后应该可以正常运行python脚本,可通过helloworld.py(见下文)进行测试。但有时会提示No module named tecplot,此时可采用另一种方法添加环境变量:
export DYLD_LIBRARY_PATH="/Applications/Tecplot.../Contents/MacOS"
#注意:在通过Tab键进行补全路径时,由于Tecplot路径中包含空格,OS系统会在空格前自动添加转义字符“”,这会导致仍然找不到正确的Tecplot位置,因此不要包含“”。
在完成上述步骤后如果仍然无法正确运行hello world.py,则可能是由于MAC OS的System Integrity Protection(SIP)系统拦截了对环境变量的修改,可以通过如下命令进行测试:
export DYLD_LIBRARY_PATH='test'
/usr/bin/python -c 'import os;print("DYLD_LIBRARY_PATH" in os.environ)'
如果返回True则表明PATH可以被正常修改,如果返回False则表明对PATH的修改被拦截,可以通过如下方法关闭SIP:
- 重启Mac;
- 在系统启动前按Command+R直到出现;
- 在上方的工具栏中选择Terminal,输入csrutil disable并执行;
- 重启Mac。
- 正常启动后可通过如下命令检查SIP状态:
csrutil status
通过以上步骤基本可以解决No module named tecplot的问题。
PyTecplot的应用
采用PyTecplot模块进行数据处理时有两种模式:批处理(batch)模式和交互模式。二者均可以实现PyTecplot的功能,其区别如下:
- 批处理(batch)模式
批处理模式直接与Tecplot内部引擎进行交互,从而实现快速的批处理,即用户在运行脚本后只会得到相应的输出结果,而无需启动GUI界面。
- 交互模式
交互模式可以在进行批处理的同时与GUI界面通过TecUtil Server插件进行交互,每一步都可以在GUI界面中进行实时显示,但运行速度会受较大影响。交互模式启动方法:
在Tecplot GUI界面中点击Scripting -> PyTecplot Connections...,勾选Accept connections; 并在Python脚本中调用tecplot.session.connect()方法。这样在运行Python脚本时将会于GUI界面进行命令交互。
Python脚本首先可以通过手动编写的方法获得,下面为Tecplot官方提供的helloworld.py测试脚本:
import logging
logging.basicConfig(level=logging.DEBUG)
import tecplot
# Run this script with "-c" to connect to Tecplot 360 on port 7600
# To enable connections in Tecplot 360, click on:
# "Scripting" -> "PyTecplot Connections..." -> "Accept connections"
import sys
if '-c' in sys.argv:
tecplot.session.connect()
tecplot.new_layout()
frame = tecplot.active_frame()
frame.add_text('Hello, World!', position=(36, 50), size=34)
tecplot.export.save_png('hello_world.png', 600, supersample=3)
通过执行该脚本可以输出一个png图片( 如果通过批处理模式运行,只会输出该图片;如果通过交互模式运行,则可以在GUI界面中看到包含“Hello,World!”的frame)。
PyTecplot的另一种常见应用是在Tecplot 360 GUI界面中录制python脚本,记录下GUI界面中的后处理操作,然后将该脚本用于相似计算结果的批量处理。在GUI界面中启动录制Python脚本的方法与录制macro宏命令相似,在Scripting下选择Record PyTecplot。录制完成后会生成.py文件,通过执行该脚本可以实现:
- 重复GUI中的相同操作
- 修改其中的一些步骤,比如通过修改读入的文件名实现批处理等
- 修改一些参数,比如修改云图变量、曲线坐标范围等
- 增删一些操作,比如增加输出某个变量的云图等
- ..........
参考资料
[1]Tecplot Inc., PyTecplot: Tecplot 360 Python Library, PyTecplot: Tecplot 360 Python Library.
更多推荐
所有评论(0)