我想从PHP脚本访问终端,打开独立版本的Maya,然后从终端运行Maya中的Python脚本。
我已经能够使用exec()函数从我的PHP脚本向终端发送命令。例如,我已经能够使用以下代码打开带有.OBJ文件的Maya。
//Open Maya with .OBJ
$cmd='open -a /Applications/Autodesk/maya2015/maya.app /Applications/AMPPS/www/webGL/upload/Character.obj';
exec($cmd);然后,我发现可以使用以下目录:/Applications/Autodesk/maya2016/Maya.app/Contents/bin/mayapy在终端中打开Maya解释器
在终端中执行此目录时,它将运行Maya解释器。当解释器运行时,我似乎再也无法从PHP脚本向终端发送命令(现在是Python代码)。
通过使用exec()函数来实现我想做的事情,我是否走上了正确的道路?还是这个函数只是在同一个终端上执行单个命令而不是多个命令?是否需要使用不同的函数将命令发送到特定的shell,以便在同一个终端中执行所有命令?
下面是我一直试图发送到终端的代码,运行Maya解释器,然后导入Maya独立库并初始化它。
//Open Maya interpreter
$cmd2="/Applications/Autodesk/maya2016/Maya.app/Contents/bin/mayapy";
//Import standalone and initialise
$cmd3="import maya.standalone; maya.standalone.initialize( name='python' )"
//Execute commands
shell_exec($cmd2);
shell_exec($cmd3);发布于 2016-06-23 21:23:29
您不需要用mayapy单独编写代码,您可以直接使用mayapy运行脚本
test.py
import os
import maya.standalone
maya.standalone.initialize()
import maya.cmds as cmds
print dir(cmds)您可以这样简单地调用这个脚本
mayapy /your/path/test.py在你的情况下
$cmd2="/Applications/Autodesk/maya2016/Maya.app/Contents/bin/mayapy /your/path/test.py";
shell_exec($cmd2);https://stackoverflow.com/questions/37994538
复制相似问题