我正在运行一个PHP脚本,该脚本从HTML表单获取输入,并将值传递到调用Blender的python脚本中,并在Blender中运行python脚本。在服务器和本地计算机上,我正在使用XAMPP进行测试。以下是该命令的PHP代码段。 $ value1和$ value2是该过程中表单早期的输入。
//creating the command, and passing time and efficiency; spaces are kept in command because the quotes
$command ="$python $pyscript $value1 $value2 $blender $blenderFile $blenderScript $outputDirFull 2>&1";
//executing the command to call processing python program
exec($command, $output, $return_var);
Python
import os
import sys
import subprocess
#read in values from PHP
value1 = sys.argv[1]
value2 = sys.argv[2]
blender = sys.argv[3]
blenderFile = sys.argv[4]
blenderScript = sys.argv[5]
outputDirFull = sys.argv[6]
#Below is the command to call Blender and run the blender file
command = blender + ' ' + blenderFile + ' -P ' + blenderScript + ' -- ' + value1 + ' ' + value2 + ' ' + outputDirFull
subprocess.call(command)
此过程在进行一些较小的更改之前起作用。这些更改之一是执行程序2>&1捕获处理细节。如前所述,此过程可在我的本地计算机上运行,但无法在服务器上完成。当我尝试在服务器上运行该进程时,似乎好像冻结了该进程。
在服务器上,我将所有路径(混合器/输出路径)以及硬编码的值1和2直接复制到Python脚本中,然后直接从python运行。按照预期方式运行。