我需要从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脚本的最佳方法是什么?
答案 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个生态系统分开保存。