Как запустить скрипт Python с помощью метода командной строки Laravel?

Мне нужно выполнить скрипт 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?

2

Решение

попробуй PHP exec функцию: http://php.net/manual/en/function.exec.php

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

Другие решения

Ну у тебя есть несколько вариантов

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 экосистемы хранятся отдельно.

1

По вопросам рекламы [email protected]