相关疑难解决方法(0)

983
推荐指数
17
解决办法
68万
查看次数

在Laravel中运行python脚本

所以,我试图在我的Laravel 5.3中运行一个python脚本.

这个功能在我的Controller里面.这只是将数据传递给我的python脚本

public function imageSearch(Request $request) {
    $queryImage = 'c:\\\xampp\\\htdocs\\\identificare_api\\\public\\\gallery\\\herbs\\\query.png'; //queryImage
    $trainImage = 'c:\\\xampp\\\htdocs\\\identificare_api\\\public\\\gallery\\\herbs\\\2nd.png'; //trainImage
    $trainImage1 = 'c:\\\xampp\\\htdocs\\\identificare_api\\\public\\\gallery\\\herbs\\\3rd.png';
    $trainImage2 = 'c:\\\xampp\\\htdocs\\\identificare_api\\\public\\\gallery\\\herbs\\\4th.jpg';
    $trainImage3 = 'c:\\\xampp\\\htdocs\\\identificare_api\\\public\\\gallery\\\herbs\\\1st.jpg';

    $data = array
        (
            array(0, $queryImage),
            array(1, $trainImage),
            array(3, $trainImage1),
            array(5, $trainImage2),
            array(7, $trainImage3),
        );

    $count= count($data);
    $a = 1;
    $string = "";

    foreach( $data as $d){
        $string .= $d[0] . '-' . $d[1];

        if($a < $count){
            $string .= ","; 
        }
        $a++;

    }

    $result = shell_exec("C:\Python27\python c:\xampp\htdocs\identificare_api\app\http\controllers\ORB\orb.py " . escapeshellarg($string));

    echo $result;
}
Run Code Online (Sandbox Code Playgroud)

我的python脚本是一个ORB算法,它在将火车图像与查询图像进行比较后返回最小距离及其id.所以,这是我的python脚本:

import …
Run Code Online (Sandbox Code Playgroud)

php python exec shell-exec orb

11
推荐指数
2
解决办法
1万
查看次数

使用 Laravel 执行 Python 脚本?

我正在尝试在 Laravel 5.8 项目中执行 python 脚本,但我在使用 Symfony/process 类时遇到问题。

基本上,我想运行这个 python 脚本,它从存储文件夹中获取一个 excel 表单。

我的第一次尝试是这个

$process = new Process('C:\Python\python.exe C:\Users\"my path"\laravel\storage\app\images\cargaExcel.py');

$process->run();

if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
}

echo $process->getOutput();
Run Code Online (Sandbox Code Playgroud)

错误是

Fatal Python error: _Py_HashRandomization_Init: failed to get random numbers to initialize Python
Run Code Online (Sandbox Code Playgroud)

我也试过shell_exec(), 如果这两个文件(excel 和 python 脚本在公共路径 - app/public 中)它可以工作。

我认为问题是python只在app/public文件夹上执行,所以我不知道如何在另一个路径中运行它。

Python 输出告诉我:

Working directory: C:\Users\"my path"\laravel\public
Run Code Online (Sandbox Code Playgroud)

有谁知道如何运行这个?

symfony python-3.x laravel

6
推荐指数
1
解决办法
640
查看次数

标签 统计

python ×2

exec ×1

laravel ×1

orb ×1

php ×1

python-3.x ×1

shebang ×1

shell ×1

shell-exec ×1

symfony ×1