Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PHP(Laravel)からPythonを実行する方法について

解決したいこと

PHPからPythonを実行したい

WEBアプリでPythonのコードを使用したい箇所があり
その環境構築としてテストコードが実行出来るか確認しています

ターミナルからPythonファイルを実行すると正常に処理が実行されるのですが
Laravelのcontroller経由で実行すると「no such file or directory」と出て処理されません

発生している問題・エラー

PHPからpythonのコード「test.py」を呼び出し「myfile.txt」に「テストテストテスト」と出力したいが以下エラーが発生してしまう
コントローラは呼び出されていること確認出来てます。

WARN  No such file or directory .  

image.png

該当するソースコード

ExecController.php

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class ExecController extends Controller
{
    public function executePython(Request $request)
    {
        //ファイルパスの指定
        $filePath = "test.py";
        $command = "python " .$filePath;
        exec($command, $output);
    }
}

test.py

import sys

f = open('myfile.txt', 'w')
f.write("テストテストテスト")
f.close()

Laravelプロジェクトのフォルダ階層は以下の通りです(ほぼ省略しちゃってます)

app/
 ├ Http/
  │  └ Controllers
  │      ├ ExecController.php
  │      └ test.py
 ├ Models
  └ Providers
0

1Answer

被疑ファイル

test.py
myfile.txt
favicon.ico
  1. myfile.txtの有無を全ディスクから検索し、生成されていない点を確認して下さい。
  2. test.py,myfile.txtはフルパス指定してください。
  3. favicon.icoの有無を確認して下さい。

shell_execが良いとおもいます。

$output = shell_exec("python  test.py");
1Like

Comments

  1. @shumaiuma

    Questioner

    申し訳ございません、解決して返信しておりませんでした!
    大変助かりました、ありがとうございます。

Your answer might help someone💌