运行没有图形的Salome脚本

2024-10-01 15:31:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我试图在PYTHONPATH和LD_LIBRARY_path中导出salome路径('install\upath'/appli_V6_5u 0p1/bin/salome/),但它仍然不起作用。在

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


Tags: install文件path命令路径脚本图形library
3条回答

根据Salome FAQ

To launch SALOME without GUI, use “runSalome –t” command: only the necessary servers are launched (without GUI). To start an interactive Python console then (for example, to be able to load TUI scripts), you will need to use pinter option

仅使用选定模块启动Salome:

To launch a group of chosen SALOME modules, use the command “runSalome –-modules=XXX,YYY”, where XXX and YYY are modules' names. You can use –h command to display help of runSalome script.

如果您在windows平台上使用salome,请使用以下命令

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

我也有类似的愿望,但经过仔细研究,我最终得出结论,我们两个都想做的事情不可能完全实现。在

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

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不会自动终止会话,因此如果多次运行上述命令,系统将被运行salome进程的多个实例阻塞。这些可以通过运行手动杀死killSalome.py,可在salome安装文件夹中找到。但要小心!这将杀死您计算机上运行的所有salome实例!如果一次运行多个模型生成脚本,或者还打开了salomegui,这将是一个问题。在

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

# 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操作系统命令的错误更正。在

编辑2:我最近发现,当端口日志文件(此处为salomePort.txt版“但是可以任意命名)只给出了它的相对路径。似乎给它一个完整的、绝对的路径,这是必要的。在

相关问题 更多 >

    热门问题