Как выполнить MonkeyRunner с веб-страницы Yii и Python

Я установил LAMP, Yii Framework 2, путь Android SDK определены. и код CallTest.php (с использованием Yii), который вызывает скрипт Python, выглядит следующим образом:

$EmuListOnline = Yii::app()->params['pathfilesscript']."ListAVDs-Online.txt";
$UserList = Yii::app()->params['pathfilesscript'].'UserListAVDs.txt';
$ScriptStartTest = Yii::app()->params['pathfilesscript'].'TestAVDs.py';
$DebugLog = Yii::app()->params['pathfilesscript'].'debug.log';

$cmd = 'python '.$ScriptStartTest.' '.$EmuListOnline.' '.$UserList.' > '.$DebugLog.' 2>&1';
$output1 = shell_exec($cmd);
if ($output1) {
echo "Starting<br>";
echo $output1;
} else {
echo "Not Executed";
var_dump($output1); }

PythonScript вызывает MonkeyRunner, adb и другие команды Android. Когда я выполняю TestAVDs.py из командной строки, он работает, но если я вызываю его из Yii, он возвращается как NULL и в журнале показывает эту ошибку:

/bin/sh: 1: monkeyrunner: not found

Код TestAVDs.py ниже. Я изменяю shell_exec exec; написать путь в коде, но не работает.

for index, line in enumerate(listdevtotest):
emulatorid = listdevtotest[index][0]
deviceid = listdevtotest[index][1]
subprocess.call('monkeyrunner -v ALL Test1.py ' + emulatorid + ' ' + deviceid + ' ' + str(index), shell=True)

Некоторые идеи, чтобы выполнить мой TestAVDs.py с веб-страницы Yii. Благодарю.

2

Решение

Используйте абсолютный путь monkeyrunner или установите переменную среды PATH перед вызовом скрипта. Например:

subprocess.call('/path/to/monkeyrunner -v ALL Test1.py ' + emulatorid + ' ' + deviceid + ' ' + str(index), shell=True)
1

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

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

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