如何在PHP Laravel中运行Python?

0 投票
2 回答
2793 浏览
提问于 2025-04-20 03:51

我想从 php 调用一个 Python 脚本,普通的 php 代码运行得很好,像这样:

    $data = $_POST['text'];
    $result=exec('python_file.py ' . escapeshellarg(json_encode($data)));
    $resultData = json_decode($result, true);

但问题是,当我在我的一个 Laravel 3.2.13 的控制器中使用相同的代码时,它没有执行命令,也没有给出任何错误提示!

有没有人能帮忙?

这是我在 Laravel 中的函数样子:

public function action_test(){
    $text="Test";
    $result=exec('python_file.py ' . escapeshellarg(json_encode($text)));
    $resultData = json_decode($result, true);
    dd($result);

}

谢谢你

2 个回答

0

问题现在解决了:

解决方案:

在我的Python代码中,它试图以相对路径调用其他文件,像这样:

configFileDatasetBuilder = ".\\Configurations\\Config.xml"

但我明白了,我是从一个控制器函数中调用整个东西,而这个控制器的请求路径和文件路径不同,所以它找不到正确的路径。

现在我把Python的路径写死了,像这样:

 configFileDatasetBuilder =" MyDrive:\\xampp\\htdocs\\MyProject\\bundles\\myBundle\\controllers.\\Configurations\\Config.xml"

这样就可以正常工作了 : )

谢谢大家!

1
  1. 请确保你在配置文件中开启了调试模式,并检查是否有任何错误日志。

  2. 检查一下文件路径是否正确?还有文件的权限设置是否合适。

3. 根据PHP文档,“如果你需要执行一个命令,并且希望所有的数据直接返回而不被干扰,可以使用passthru()函数。”

希望这些能帮到你,如果没有,请在下面留言,我们可以进一步解决问题。

谢谢

撰写回答