Laravel

LaravelプロジェクトでPythonを動かす方法

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

オススメ本
Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。ついに最終号・・・、みなさん買いましょう!!
読んで損することはない名著。命名で悩むことが多い人はこの本がオススメです。

⇨ Laravel 記事の目次はこちら

Laravel プロジェクト内で、Python ファイルを動かす方法についてまとめました

前提

ローカルに Python 環境がすでにある状態

ローカルに python が入っているかどうかは、

python --version
python3 --version

などで確認することができます。

このコマンドが使えない人はローカル環境に python が入っていないので導入してから、記事を読んでいただければと思います。

流れの説明

python ファイルをどのタイミングで動かすかというのは、様々だとは思いますが、今回は

  1. 実行する Python ファイルを作成する
  2. php artisan のコマンドファイルを作成する
  3. python を動かす記述をする

このような流れでいきます。

実行する Python ファイルを作成する

app/Python/test.py を作成し、以下のように書いておきます。

print('test')

Laravel のコマンドファイルを作成する

Laravel では以下のコマンドで、コマンドファイルを作成します(ややこしい)

php artisan make:command PythonTestCommand

app/Console/Commands/PythonTestCommand.php

が作成されたことを確認してください。

PythonTestCommand.php の編集

use Symfony\Component\Process\Exception\ProcessFailedException;
use Symfony\Component\Process\Process;
//他のuseは省略

class PythonTestCommand extends Command
{
  protected $signature = 'test:python';

  protected $description = 'Pythonファイルの実行テスト';

  //自分の環境では、ファイルの位置が引数のようになっています。
  $process = new Process(['python', './app/Python/test.py']);

  //もし、ファイルの基準が知りたい場合、以下のようにpwdコマンドると基準ディレクトリが分かります。
  // $process = new Process(['pwd']);

  try {
      $process->mustRun();
      // \Log::info();
      $response = $process->getOutput();
      dd($response);
  } catch (ProcessFailedException $exception) {
      \Log::error($exception->getMessage());
  }
}

結果

test

このように出力できれば無事 python を動かすことができました!!

今回はコマンドで実装しましたが、Controller でも、どこでも同じように使えるはずですので、お試しください。

まとめ

以上です。

python は、データや整形において便利なパッケージがたくさんありますので、ぜひ Laravel プロジェクトに導入してみてください。

感想・苦情は TwitterDM にご連絡ください。

それでは!

人気記事

PHP7.4 + Laravel6 のプロジェクトを AWS EC2 にデプロイする

【laravel-breadcrumbs】Laravel でパンくずリストを実装する