gpt4 book ai didi

python - 运行不带图形的 Salome 脚本

转载 作者:行者123 更新时间:2023-12-02 12:21:24 24 4
gpt4 key购买 nike

我从 Salome(转储)导出了一个脚本,我想在 python 中运行它(我正在做一些几何运算,我不需要任何图形)。所以我删除了所有图形命令,但是当我尝试启动我的 python 文件时,python 找不到 salome 库。

我尝试在 PYTHONPATH 和 LD_LIBRARY_PATH 中导出 salome 路径 ('install_path'/appli_V6_5_0p1/bin/salome/),但它仍然不起作用。

我还想知道是否可以只使用geompy库而不使用salome,如果可以,我怎样才能只安装geompy库? (我需要在只有 8GB 内存的无人机上启动一些 geompy 脚本,所以我安装的东西越少越好)

最佳答案

我和你有类似的愿望,但经过多次搜索后,我最终得出结论,我们都想做的事情并不完全可能。

为了在没有 GUI 的情况下在命令行上运行 salome 脚本,请使用

salome -t python script.py或者简单地salome -t script.py

为了运行 salome 脚本,您必须使用 salome 可执行文件调用它。如果没有编译的程序,您似乎无法使用 salome 库(通过将它们导入到 python 脚本中,然后使用 python script.py 调用)。 salome 使用的可执行文件包含平台完成其工作所需的大部分内容。

这让我沮丧了很长时间,但我找到了解决方法;举个简单的例子,如果你有一个 salome 脚本,你可以从另一个 python 程序中调用 salome 可执行文件os.system("salome -t python script.py")

但是现在你有一个问题; salome 不会自动终止 session ,因此如果您多次运行上述命令,您的系统将因运行 salome 进程的多个实例而堵塞。这些可以通过运行在 salome 安装文件夹中找到的killSalome.py 手动终止。但要小心!这将杀死您计算机上运行的所有 Salome 实例!如果您同时运行多个模型生成脚本或者还打开了 salome GUI,这将是一个问题。

显然,更好的方法是让脚本在使用后杀死 salome 的每个特定实例。以下是一种方法(可执行文件等的确切路径需要根据您的安装进行更改):

# Make a subprocess call to the salome executable and store the used port in a text file:
subprocess.call('/salomedirectory/bin/runAppli -t python script.py --ns-port-log=/absolute/path/salomePort.txt', shell=True)

# Read in the port number from the text file:
port_file = open('/absolute/path/salomePort.txt','r')
killPort = int(port_file.readline())
port_file.close()

# Kill the session with the specified port:
subprocess.call('/salomedirectory/bin/salome/killSalomeWithPort.py %s' % killPort,shell=True)

编辑:对 python os 命令的拼写错误更正。

EDIT2:我最近发现,当端口日志文件(此处为“salomePort.txt”,但可以任意命名)仅给出其相对路径时,会遇到此方法的问题。看来,给它完整的、绝对的路径是必要的。

关于python - 运行不带图形的 Salome 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13266480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com