Подпроцесс Python работает на локальном, но не на сервере - PullRequest
1 голос
/ 03 апреля 2019

Я запускаю скрипт PHP, который принимает данные из формы HTML и передает значения в скрипт Python, который вызывает Blender и запускает скрипт Python в Blender. На сервере и на моей локальной машине я тестирую с помощью 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 в exec для захвата деталей обработки. Как упоминалось ранее, этот процесс работает на моей локальной машине, но не завершается на сервере. Кажется, что процесс застыл, когда я пытаюсь запустить его на сервере.

На сервере я скопировал все пути (пути blender / output) и жестко запрограммированные значения 1 и 2 непосредственно в скрипт Python и запустил его прямо из python. побежал, как и ожидалось, делает это так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...