Мне нужно выполнить скрипт Python из команды Laravel, но я не могу найти какие-либо методы в 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');
}
Ни один из них не работает, так как Ларавел ожидает, что я вызову от них еще одну команду Ларавела. Каков наилучший способ вызова простого сценария Python с помощью команды Laravel?
попробуй 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.
Таким образом, 2 экосистемы хранятся отдельно.