【问题标题】:Laravel Artisan: Returns 0 for Python outputLaravel Artisan:为 Python 输出返回 0
【发布时间】:2019-05-23 15:44:52
【问题描述】:

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

这是我的 Artisan 命令文件

$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

【问题讨论】:

    标签: php python laravel


    【解决方案1】:

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

    见:

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

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

    【讨论】:

      猜你喜欢
      • 2013-10-30
      • 2014-09-17
      • 2014-02-18
      • 2017-07-17
      • 2012-10-15
      • 2020-08-03
      • 1970-01-01
      • 2013-04-03
      • 2020-10-13
      相关资源
      最近更新 更多