我需要从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格式。
通过这种方式,这两个生态系统被分开保存。