В настоящее время я работаю над веб-приложением, которое выкладывает файл .stl в blender. Я использовал php, и я вызываю скрипт в php с помощью exec (). Пожалуйста, посмотрите на код ниже. Я нашел код от
Php: запуск сценария python с использованием blender из проекта php с использованием команд cmd
$script = "C:\\xampp\\htdocs\\test\\test.py";
$blender_path = "C:\Program Files\Blender Foundation\Blender";
$output = exec("cd $blender_path && blender -b -P $script", $data);
echo "<pre>";
print_r($data);
echo "</pre>";
И все работает хорошо локально. Я загрузил контент на свой сайт (хостинг на Linux), Uploaded Blender (Linux — https://www.blender.org/download/) изменил пути и ничего не происходит. Он даже не выводит никаких ошибок. Есть ли отдельный код командной строки для Linux? Я не привык использовать Linux, и я боролся с этим в течение последних 3 дней.
Любая помощь приветствуется.
Я могу думать о двух возможностях. Первый — это имена путей, в Linux нет букв дисков, путь должен быть примерно таким: /home/aniket/tests/blendtest
Второй относится к запуску программы, я ожидаю ошибки, но вам, возможно, придется заглянуть в файлы журналов, чтобы найти ее или увеличить многословность php. Во-первых, для файла требуются права доступа, которые должны быть исполняемыми. chmod +x blender
или, может быть, с помощью вашего программного обеспечения FTP для установки этого, он часто представляется как X
в строке разрешений, таких как RWXRWXRWX
, Второй момент — это способ поиска команд в системе * nix, есть переменная среды PATH, в которой перечислены каталоги для поиска команды, текущий каталог по умолчанию отсутствует в этом списке, и я не ожидаю, что хостинговая компания добавь это.
$script = "/home/aniket/test1/test.py";
$blendexe = "/home/aniket/blender2.76/blender";
$output = exec("$blendexe -b -P $script", $data);
echo "<pre>";
print_r($data);
echo "</pre>";
В системах * nix ./
представляет текущий каталог, так что вам также может повезти, используя
$output = exec("cd $blender_path && ./blender -b -P $script", $data);
Других решений пока нет …