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

时间:2015-02-27 06:07:19

标签: php python laravel console command

我需要从Laravel Command执行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期待我从他们那里召唤另一个Laravel命令。通过Laravel命令调用简单python脚本的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

嗯,你有几个选择

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格式对结果进行编码。

这种方式将2个生态系统分开保存。