如何在Salome嵌入式Python中调用系统默认Python3执行meshio脚本?
问题解决:Salome嵌入式Python调用系统Python执行meshio脚本
核心问题
Salome嵌入式Python环境无法安装meshio和subprocess,仅能通过os.system调用系统默认Python执行VTK处理脚本,但直接调用后未生成目标文件。
可能原因及解决方案
1. 明确调用系统Python的绝对路径
Salome的环境变量可能优先指向自身嵌入式Python,而非系统版本。先在终端执行以下命令获取系统Python的绝对路径:
which python3
假设输出为/usr/bin/python3,修改嵌入式脚本中的os.system调用,使用绝对路径执行:
import os # 用系统Python的绝对路径调用目标脚本 os.system("/usr/bin/python3 /home/franco/Desktop/VTKCreation.py")
2. 输出执行日志排查错误
在调用命令中加入日志重定向,捕获执行过程中的错误信息,方便定位问题:
os.system("/usr/bin/python3 /home/franco/Desktop/VTKCreation.py > /home/franco/Desktop/vtk_run_log.txt 2>&1")
执行完成后查看vtk_run_log.txt,可排查脚本报错、路径缺失等问题。
3. 脚本中使用绝对路径生成输出文件
Salome运行时的工作目录可能不是脚本所在的Desktop目录,导致生成的Mesh_1.vtk被写入Salome临时工作目录。修改VTKCreation.py中的输出路径为绝对路径:
# 原代码若为: # meshio.write("Mesh_1.vtk", mesh) # 修改为绝对路径: meshio.write("/home/franco/Desktop/Mesh_1.vtk", mesh)
4. 检查目录权限
确保Salome进程对/home/franco/Desktop目录有读写权限,可临时调整权限测试:
chmod 755 /home/franco/Desktop chmod 644 /home/franco/Desktop/VTKCreation.py
内容的提问来源于stack exchange,提问作者otaolafr
相关产品推荐
相关产品推荐

