ubuntu下安装配置 pylith 与 paraview ubuntu下安装配置 pylith 与 paraviewInstall and configure pylith and paraview under ubuntu版本号ubuntu 20.04.6pylith 4.0.0paraview 5.12.0-Python3.10其他docker、conda和tmux配置方法见主页专栏“Pylith”。1、pylith配置pylith下载 官网可能失效失效访问GitHub地址或网盘hhttps://geodynamics.org/resources/pylith/GitHub项目地址https://github.com/geodynamics/pylith百度网盘会员不限速https://pan.baidu.com/s/1ZgTM3njAI6vzYDEwzb2Stg提取码8y6f夸克网盘会员不限速https://pan.quark.cn/s/6ae21498ea26提取码zEMx123云盘不限速https://www.123684.com/s/5DnSjv-JMFD3提取码CXH3链接如失效文件缺失可留言或kongdeqianght163.com 使用编译好二进制包已经具有配置完全的运行环境。1在/home下使用下面代码或者鼠标右键新建文件夹pylith然后复制下载的pylith压缩文件到该目录下本例使用“pylith-4.0.0-linux-x86_64.tar.gz”。cd$HOMEmkdirpylith2在/home/user/pylith下打开终端复制下面代码解压文件或者直接鼠标右键“Extract Here解压文件“pylith-4.0.0-linux-x86_64.tar.gz”到此文件夹。user指你的用户名称需要更改为自己系统的用户名cdpylith# 复制到终端解压文件“pylith-4.0.0-linux-x86_64.tar.gz”根据自己版本更改tar-xzfpylith-4.0.0-linux-x86_64.tar.gz3拷贝/home/user/pylith/pylith-4.0.0-linux-x86_64/下的文件到上级目录/home/pylith/ 目录下使用以下代码或者右键copy。复制完成后可以删除/home/user/pylith/pylith-4.0.0-linux-x86_64/目录# 复制文件到上级目录user需要更改为自己系统的用户名cp-a/home/user/pylith/pylith-4.0.0-linux-x86_64/. /home/user/pylith/# 删除/home/user/pylith/pylith-4.0.0-linux-x86_64/ 目录-可选rm-r/home/user/pylith/pylith-4.0.0-linux-x86_64/4进入/home/user/pylith/文件夹鼠标右键启动终端或者使用下面代码让终端处于文件夹。# 终端进入/home/user/pylith/ 文件夹cd/home/user/pylith/5设置环境pylith变量pylith给出了可以自动执行环境变量设置的setup.sh文件但是在实际的使用中无法成功设置需要手动配置。自动配置在第四步终端进入/home/user/pylith/文件夹后执行setup.sh脚本。# 执行 setup.sh 脚本sourcesetup.sh执行完毕后如果没有报错会返回但是本人在配置时会出现在.bashrc中没有添加的情况所以需手动配置。需要检查文件.bashrc有没有添加成功相对用的环境变量Ready to run PyLith.手动配置在/home下打开隐藏文件显示即可出现.bashrc文件在该文件中添加 pylith 环境变量。使用记事本打开.bashrc文件在文件最后位置添加以下代码然后保存.bashrc文件即可。#************注意user修改为自己的用户名**************# python pylithexportpylith/home/user/pylithexportPYTHONHOME$pylithexportPATH$pylith/bin:$PATHexportPYTHONPATH$pylith/lib/python3.10/site-packages:$pylith/lib64/python3.10/site-packagesexportLD_LIBRARY_PATH$pylith/lib:$pylith/lib646环境变量配置完毕后需要检验是否成功配置pylith时候成功安装使用/home/user/pylith/src/pylith-4.0.0/examples文件下的box-2d示例检验。在/home/user/pylith/src/pylith-4.0.0/examples/box-2d/下打开终端或者使用cd使得终端处于该文件夹下# 进入示例文件夹user更改为自己用户名cd/home/user/pylith/src/pylith-4.0.0/examples/box-2d/终端中输入如下代码如果结果如图并没有报错则安装成功。# 运行示例pylith step01_axialdisp.cfg安装成功后可得到如下结果并且在该文件夹下的output文件夹下会出现结果。 /home/kdq/pylith/lib/python3.10/site-packages/pylith/apps/PyLithApp.py:77:main -- pylithapp(info) -- Running on 1 process(es). /home/kdq/pylith/lib/python3.10/site-packages/pylith/meshio/MeshIOObj.py:38:read -- meshioascii(info) -- Reading finite-element mesh ../../../pylith-4.0.0/libsrc/pylith/meshio/MeshIO.cc:85:void pylith::meshio::MeshIO::read(pylith::topology::Mesh*, bool) -- meshioascii(info) -- Component reader: Domain bounding box: (-6000, 6000) (-16000, -0) /home/kdq/pylith/lib/python3.10/site-packages/pylith/problems/Problem.py:116:preinitialize -- timedependent(info) -- Performing minimal initialization before verifying configuration. /home/kdq/pylith/lib/python3.10/site-packages/pylith/problems/Solution.py:39:preinitialize -- solution(info) -- Performing minimal initialization of solution. /home/kdq/pylith/lib/python3.10/site-packages/pylith/problems/Problem.py:174:verifyConfiguration -- timedependent(info) -- Verifying compatibility of problem configuration. /home/kdq/pylith/lib/python3.10/site-packages/pylith/problems/Problem.py:219:_printInfo -- timedependent(info) -- Scales for nondimensionalization: Length scale: 1000*m Time scale: 3.15576e09*s Pressure scale: 3e10*m**-1*kg*s**-2 Density scale: 2.98765e23*m**-3*kg Temperature scale: 1*K /home/kdq/pylith/lib/python3.10/site-packages/pylith/problems/Problem.py:185:initialize -- timedependent(info) -- Initializing timedependent problem with quasistatic formulation. ../../../pylith-4.0.0/libsrc/pylith/utils/PetscOptions.cc:239:static void pylith::utils::_PetscOptions::write(pythia::journal::info_t, const char*, const pylith::utils::PetscOptions) -- petscoptions(info) -- Setting PETSc options: ksp_atol 1.0e-12 ksp_converged_reason true ksp_error_if_not_converged true ksp_guess_pod_size 8 ksp_guess_type pod ksp_rtol 1.0e-12 pc_type lu snes_atol 1.0e-9 snes_converged_reason true snes_error_if_not_converged true snes_monitor true snes_rtol 1.0e-12 ts_error_if_step_fails true ts_monitor true ts_type beuler /home/kdq/pylith/lib/python3.10/site-packages/pylith/problems/TimeDependent.py:132:run -- timedependent(info) -- Solving problem. 0 TS dt 0.01 time 0. 0 SNES Function norm 1.245882095312e-02 Linear solve converged due to CONVERGED_ATOL iterations 1 1 SNES Function norm 6.738354969624e-18 Nonlinear solve converged due to CONVERGED_FNORM_ABS iterations 1 1 TS dt 0.01 time 0.01 /home/kdq/pylith/lib/python3.10/site-packages/pylith/problems/Problem.py:199:finalize -- timedependent(info) -- Finalizing problem.2、paraview配置提示paraview是对pylith的结果可视化适用pylith得到的HDF5格式文件实现paraview官网下载https://www.paraview.org/download/百度网盘会员不限速https://pan.baidu.com/s/1ZgTM3njAI6vzYDEwzb2Stg提取码8y6f夸克网盘会员不限速https://pan.quark.cn/s/109dba32b2eb提取码SXs2123云盘不限速https://www.123684.com/s/5DnSjv-JMFD3提取码CXH3本例使用ParaView-5.12.0-RC1-MPI-Linux-Python3.10-x86_64.tar.gz1在/home创建文件夹paraview移动ParaView-5.12.0-RC1-MPI-Linux-Python3.10-x86_64.tar.gz到/home/user/paraview下。2在/home/user/paraview打开终端或在终端中使cd进入文件夹并解压ParaView-5.12.0-RC1-MPI-Linux-Python3.10-x86_64.tar.gz文件。# 终端进入/home/user/pylith/ 文件夹cd/home/user/paraview/# 解压 ParaView-5.12.0-RC1-MPI-Linux-Python3.10-x86_64.tar.gz 文件sudotar-xvzfParaView-5.12.0-RC1-MPI-Linux-Python3.10-x86_64.tar.gz3将解压的ParaView-5.12.0-RC1-MPI-Linux-Python3.10-x86_64.tar.gz文件夹移动到opt/文件夹下并修改文件夹名称以方便后续操作。# cd ../..cd/..cdopt/# 移动文件到 opt/sudomv/home/user/paraview/ParaView-5.12.0-RC1-MPI-Linux-Python3.10-x86_64 Paraview-5.124配置 paraview 环境变量打开/home/.bashrc文件在文件末尾添加如下变量exportPATH$PATH:/opt/Paraview-5.12/bin/5检验是否成功安装打开终端paraview如果成功打开则完成安装。其他安装问题1、paraview 启动提示 xcb 错误Warning: Ignoring XDG_SESSION_TYPEwayland on Gnome. Use QT_QPA_PLATFORMwayland to run on Wayland anyway. qt.qpa.plugin: Could not load the Qt platform plugin xcb in even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: xcb. error: exception occurred: Subprocess aborted问题分析paraview 在启动时缺少 QT 的库文件在终端进入/opt/Paraview-5.12/plugins/platforms文件夹# cd ../..cd/..# 进入文件夹cdopt/Paraview-5.12/plugins/platforms/检查那个包存在问题ldd libqxcb.so如果ldd命令没有输出安装LD或者升级glibc链接。# 安装LDsudoapt-getinstalllibc6我们执行依赖查看后发现libxcb-xinerama.so.0和libxcb-xinput.so.0缺失not foundlinux-vdso.so.1 (0x00007ffcd3756000) libQt5XcbQpa.so.5 /opt/Paraview-5.12/plugins/platforms/./../../lib/libQt5XcbQpa.so.5 (0x00007fb31de0e000) libfontconfig.so.1 /opt/Paraview-5.12/plugins/platforms/./../../lib/libfontconfig.so.1 (0x00007fb31ddb8000) libfreetype.so.6 /opt/Paraview-5.12/plugins/platforms/./../../lib/libfreetype.so.6 (0x00007fb31dcee000) libz.so.1 /opt/Paraview-5.12/plugins/platforms/./../../lib/libz.so.1 (0x00007fb31dcd0000) libQt5Gui.so.5 /opt/Paraview-5.12/plugins/platforms/./../../lib/libQt5Gui.so.5 (0x00007fb31d600000) libQt5Core.so.5 /opt/Paraview-5.12/plugins/platforms/./../../lib/libQt5Core.so.5 (0x00007fb31ce00000) libGL.so.1 /lib/x86_64-linux-gnu/libGL.so.1 (0x00007fb31d579000) libpthread.so.0 /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb31d574000) libX11-xcb.so.1 /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007fb31d56f000) libxcb-icccm.so.4 /lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007fb31d568000) libxcb-image.so.0 /lib/x86_64-linux-gnu/libxcb-image.so.0 (0x00007fb31d562000) libxcb-shm.so.0 /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007fb31d55d000) libxcb-keysyms.so.1 /lib/x86_64-linux-gnu/libxcb-keysyms.so.1 (0x00007fb31d558000) libxcb-randr.so.0 /lib/x86_64-linux-gnu/libxcb-randr.so.0 (0x00007fb31d545000) libxcb-render-util.so.0 /lib/x86_64-linux-gnu/libxcb-render-util.so.0 (0x00007fb31d53e000) libxcb-render.so.0 /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007fb31d52f000) libxcb-shape.so.0 /lib/x86_64-linux-gnu/libxcb-shape.so.0 (0x00007fb31d52a000) libxcb-sync.so.1 /lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007fb31d520000) libxcb-xfixes.so.0 /lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007fb31d516000) libxcb-xinerama.so.0 not found libxcb-xkb.so.1 /lib/x86_64-linux-gnu/libxcb-xkb.so.1 (0x00007fb31d4f8000) libxcb-xinput.so.0 not found libxcb.so.1 /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fb31d4ce000) libXext.so.6 /lib/x86_64-linux-gnu/libXext.so.6 (0x00007fb31d4b7000) libX11.so.6 /lib/x86_64-linux-gnu/libX11.so.6 (0x00007fb31ccc0000) libSM.so.6 /lib/x86_64-linux-gnu/libSM.so.6 (0x00007fb31d4ac000) libICE.so.6 /lib/x86_64-linux-gnu/libICE.so.6 (0x00007fb31d48f000) libxkbcommon-x11.so.0 /lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 (0x00007fb31ccb5000) libxkbcommon.so.0 /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007fb31cc6e000) libdl.so.2 /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb31cc69000) libstdc.so.6 /home/kdq/pylith/lib64/libstdc.so.6 (0x00007fb31c800000) libm.so.6 /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb31c719000) libgcc_s.so.1 /home/kdq/pylith/lib64/libgcc_s.so.1 (0x00007fb31c400000) libc.so.6 /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb31c000000) libxcb-xinerama.so.0 not found libxcb-xinput.so.0 not found libxml2.so.2 /opt/Paraview-5.12/plugins/platforms/./../../lib/../lib/libxml2.so.2 (0x00007fb31c24e000) libpng16.so.16 /opt/Paraview-5.12/plugins/platforms/./../../lib/../lib/libpng16.so.16 (0x00007fb31cc28000) /lib64/ld-linux-x86-64.so.2 (0x00007fb31dee5000) libGLdispatch.so.0 /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fb31c661000) libGLX.so.0 /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fb31cbf2000) libxcb-util.so.1 /lib/x86_64-linux-gnu/libxcb-util.so.1 (0x00007fb31cbe9000) libXau.so.6 /lib/x86_64-linux-gnu/libXau.so.6 (0x00007fb31cbe3000) libXdmcp.so.6 /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fb31cbdb000) libuuid.so.1 /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fb31cbd2000) libbsd.so.0 /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fb31c649000) libmd.so.0 /lib/x86_64-linux-gnu/libmd.so.0 (0x00007fb31c63c000)执行命令安装这两个库sudoapt-getinstalllibxcb-xinput0sudoapt-getinstalllibxcb-xinerama0如果失败重新启动你的计算机或者尝试刷新 DNS 缓存使用命令 sudo systemctl restart systemd-resolved 或 sudo /etc/init.d/networking restart。安装完成后再次查看依赖项2、paraview启动vmwgfx错误可能会出现Warning: Ignoring XDG_SESSION_TYPEwayland on Gnome. Use QT_QPA_PLATFORMwayland to run on Wayland anyway. libGL error: MESA-LOADER: failed to open vmwgfx: /usr/lib/dri/vmwgfx_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri) libGL error: failed to load driver: vmwgfx libGL error: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri) libGL error: failed to load driver: swrast ( 0.963s) [paraview ]vtkXOpenGLRenderWindow.:653 ERR| vtkXOpenGLRenderWindow (0x2a0f0b0): Cannot create GLX context. Aborting. error: exception occurred: Subprocess aborted这个错误是在虚拟机中安装遇到的问题似乎是显卡映射的问题暂时并没有解决。在物理机没有遇到此问题。3、paraview启动提示HDF5 版本问题这个造成这个问题主要是因为环境变量的问题系统的HDF5版本与pylith的HDF5版本相互冲突引发的错误。Warning! ***HDF5 library release mismatched error*** The HDF5 header files used to compile this application are not compatible with the version used by the HDF5 library to which this application is linked. Data corruption or segmentation faults may occur if the application continues. This can happen when an application was compiled by one version of HDF5 but linked with an incompatible version of static or shared HDF5 library. You should recompile the application or check your shared library related settings such as LD_LIBRARY_PATH. You can, at your own risk, disable this warning by setting the environment variable HDF5_DISABLE_VERSION_CHECK to a value of 1. Setting it to 2 or higher will suppress the warning messages totally. Headers are 1.14.2, library is 1.14.0 Bye... error: exception occurred: Subprocess aborted**1 在配置 pylith 的时候设置了环境变量#************注意user修改为自己的用户名**************# python pylith......exportLD_LIBRARY_PATH$pylith/lib:$pylith/lib64只需要注释掉LD_LIBRARY_PATH的变量设置即可解决问题。#************注意user修改为自己的用户名**************# python pylith......# export LD_LIBRARY_PATH$pylith/lib:$pylith/lib64注意注意注意**2 paraview 与 pylith 一块使用时两个软件的HDF5会相互干扰在本例中paraview使用的是 1.14.2 而 pylith 使用的版本为 1.14.0 所以为了解决这个问题我删除掉了pylith/lib文件夹下的所有的HDF5库文件然后在环境变量中将环境变量改为#************注意user修改为自己的用户名**************# python pylith......exportLD_LIBRARY_PATH$pylith/lib:$pylith/lib64:opt/Paraview-5.12/lib这样 pylith 在运行计算时也会使用paraview的高版本的DHF5这样得到的结果文件使用paraview打开也不会出现斑纹不对应的问题。注意注意注意########想一劳永逸就执行下面操作不需要修改环境变量**1和**2步骤当然由于HDF5版本引起的问题也可以通过将paraview中或者pylith中高版本的HDF5拷贝到另一个软件的bin目录中这样的话不需要修改环境变量就可以解决这个问题。相对应的HDF5文件在相应软件的lib或者lib64文件夹中。 4、paraview启动缺少模块 ‘encodings’Python path configuration: PYTHONHOME/home/aduser/pylithPYTHONPATH/home/aduser/pylith/lib/python3.10/site-packages:/home/aduser/pylith/lib64/python3.10/site-packagesprogram name/usr/bin/python3isolated0environment1user site1importsite1sys._base_executable/usr/bin/python3sys.base_prefix/home/aduser/pylithsys.base_exec_prefix/home/aduser/pylithsys.executable/usr/bin/python3sys.prefix/home/aduser/pylithsys.exec_prefix/home/aduser/pylithsys.path[/home/aduser/pylith/lib/python3.10/site-packages,/home/aduser/pylith/lib64/python3.10/site-packages,/home/aduser/pylith/lib/python38.zip,/home/aduser/pylith/lib/python3.8,/home/aduser/pylith/lib/python3.8/lib-dynload,]Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding Python runtime state: core initialized ModuleNotFoundError: No module namedencodingsCurrent thread 0x00007f5e3480b740(most recent call first):no Python frame出现这个问题大概率存在两个问题第一你要检查你的启动命令是否是“paraview”第二检查你的pylith、Python以及paraview的环境变量设置是否正确。5、paraview使用附加在使用paraview读取Python脚本显示成果时会由于Python脚本中的相对路径报错错误显示为找不到文件解决方案即将相对路径更改为绝对路径。