如何使用Laravel的命令触发方法运行 python脚本?

How to run python script with Laravel's command fire method?

我需要从 Laravel 命令执行 Python 脚本,但我在 Illuminate\Console\Command 中找不到任何方法来完成我的任务。

我想通过控制台运行这个命令:

C:\Python34\python H:\myapp\app\python\questionPopulator.py

为此,我在命令 fire() 方法中尝试了以下操作:

public function fire()
{
    $this->call('C:\Python34\python H:\myapp\app\python\questionPopulator.py');
}


public function fire()
{
    $this->line('C:\Python34\python H:\myapp\app\python\questionPopulator.py');
}

None 他们工作,因为 Laravel 期待我从他们那里调用另一个 Laravel 命令。通过 Laravel 命令调用简单 python 脚本的最佳方法是什么?

尝试PHP执行函数:http://php.net/manual/en/function.exec.php

exec('C:\Python34\python H:\myapp\app\python\questionPopulator.py');

嗯,你有几个选择

1) 系统

  system('C:\Python34\python H:\myapp\app\python\questionPopulator.py');

2) 执行

  exec('C:\Python34\python H:\myapp\app\python\questionPopulator.py');

3) shell_exec - 我的最爱

  $result = shell_exec('C:\Python34\python H:\myapp\app\python\questionPopulator.py');

shell_exec 运行脚本但 returns 一个字符串。

您可以将结果编码为 json 格式。

这样两个生态系统就分开了。