如何使用Laravel';s命令开火方法


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');
}

它们都不起作用,因为拉拉威尔希望我从他们那里调用另一个拉拉威尔命令。通过Laravel命令调用简单python脚本的最佳方式是什么?

尝试PHP exec函数: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

  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运行脚本,但返回一个字符串。

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

通过这种方式,这两个生态系统被分开保存。