Laravel Artisan:返回 0 表示 Python 输出



我写了一个 python 实用程序,它返回一个结果数组。此实用程序将图像路径作为输入,处理该图像,并返回结果的 json 数组。
现在我想在我的网站上显示这个输出,它使用的是Laravel 5.7
所以我创建了一个工匠命令,它执行python脚本并给我结果。
此命令在终端中运行良好,但是当我使用 Artisan::call 方法从控制器执行相同的命令时,它会在 Web 浏览器中显示"0"作为输出。
我也尝试了shell_exec()。但结果是一样的。

这是我的工匠命令文件

$process = new Process('python3 my_python_script.py -i ' . $this->argument('path'));
$process->run();
$result = $process->getOutput();
return $result;

工匠指挥部

php artisan image:upload image_path

Artisan 的调用方法返回整数。它不会从输出中读取,或者它不是句柄方法的返回值。

看:

/**
 * Run an Artisan console command by name.
 *
 * @param  string  $command
 * @param  array  $parameters
 * @param  SymfonyComponentConsoleOutputOutputInterface|null  $outputBuffer
 * @return int
 */
public function call($command, array $parameters = [], $outputBuffer = null);

也许你应该尝试Artisan::output()但我认为它不是线程安全的或类似的东西。

最新更新