运行没有图形的Salome脚本

时间:2012-11-07 09:13:28

标签: python dump

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

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

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

3 个答案:

答案 0 :(得分:4)

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

为了在命令行上运行salome脚本而不使用GUI

salome -t python script.py 或者干脆 salome -t script.py

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

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

但现在你有问题; salome不会自动终止会话,因此如果多次运行上述命令,系统将被多个运行salome进程的实例堵塞。这些可以通过运行salome安装文件夹中的killSalome.py手动杀死。但要小心!这会杀死计算机上运行的所有所有实例。如果您一次运行多个模型生成脚本或者您还打开了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"但可以任意命名)仅使用其相对路径时,会遇到此方法的问题。它似乎以其完整的绝对路径赋予它是必要的。

答案 1 :(得分:0)

如果您在Windows平台上使用salome,请使用以下

salome_folder\WORK>run_salome.bat -t script_file.py

答案 2 :(得分:0)

根据Salome FAQ

  

要在没有GUI的情况下启动SALOME,请使用“runSalome –t”命令:仅使用   启动必要的服务器(没有GUI)。开始互动   然后是Python控制台(例如,为了能够加载TUI脚本),你   需要使用--pinter选项

仅使用选定的模块启动Salome:

  

要启动一组选定的SALOME模块,请使用命令“runSalome   --modules = XXX,YYY“,其中XXX和YYY是模块'名。您可以使用   -h命令显示runSalome脚本的帮助。