Как отправить команды из PHP-скрипта в Terminal с интерпретатором Python?

Я хочу получить доступ к Терминалу из PHP-скрипта, чтобы открыть автономную версию Maya, а затем запустить скрипт Python в Maya из Терминала.

Я смог отправить команды в терминал из моего скрипта PHP, используя exec() функция. Например, я смог открыть Maya с помощью файла .OBJ, используя следующий код.

//Open Maya with .OBJ
$cmd='open -a /Applications/Autodesk/maya2015/maya.app /Applications/AMPPS/www/webGL/upload/Character.obj';
exec($cmd);

Затем я обнаружил, что могу открыть интерпретатор Python Maya в Терминале, используя этот каталог:
/Applications/Autodesk/maya2016/Maya.app/Contents/bin/mayapy

Когда этот каталог выполняется в Терминале, он запускает интерпретатор Python Maya. Когда интерпретатор работает, кажется, что я больше не могу отправлять команды (теперь это код Python) в терминал из моего сценария PHP.

Я иду по правильному пути с использованием exec() Функция выполнять то, что я хочу сделать? Или эта функция просто выполняет отдельные команды, а не несколько команд последовательно в одном терминале? Нужно ли использовать другую функцию, которая отправляет команды в определенную оболочку, чтобы все команды выполнялись в одном терминале?

Вот код, который я пытался отправить в Терминал для запуска интерпретатора Python 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);

0

Решение

Вам не нужно кодировать отдельно с помощью 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);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]