0

我正在尝试从 Laravel 运行 python 脚本,SymfonyProcess组件如下:

我的控制器:

public function access(Request $request)
{
    $process = new Process(['test.py', 'helloworld']);
    $process->run();
    dd($process->getOutput());
}

Python脚本:

import sys
x = sys.argv[1]
print(x)

但我在 dd 中得到的只是""

你认为是什么问题?

4

2 回答 2

0

不是答案,只是一个提示,但太长了,不适合作为评论:

除了转储标准输出之外,您还可以转储其他有用的信息:

$process = new Process(['/usr/bin/python', '/my/full/path/test.py', 'helloworld']);
$process->run();

echo "Output:\n";
dump($process->getOutput());
echo "Error:\n";
dump($process->getErrorOutput());
echo "Exit code: " . $process->getExitCode() . "\n";
die;
于 2020-06-20T19:25:30.747 回答
0

Symfony 进程不断抛出致命的 Python 错误:_Py_HashRandomization_Init错误,改为使用shell_exec()

 <?php
    $var = "Hello World";
    $command = escapeshellcmd('path_to_python_script.py '.$var);
    $output = shell_exec($command);
    echo $output;
 ?>

您还可以发送文件而不是变量,并从 python 处理它。如果您想获得运行时输入,请查看 BrythonSkulpt

于 2021-06-16T17:36:14.593 回答