如何在PHP Laravel中运行Python?
我想从 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
请确保你在配置文件中开启了调试模式,并检查是否有任何错误日志。
检查一下文件路径是否正确?还有文件的权限设置是否合适。
3. 根据PHP文档,“如果你需要执行一个命令,并且希望所有的数据直接返回而不被干扰,可以使用passthru()函数。”
希望这些能帮到你,如果没有,请在下面留言,我们可以进一步解决问题。
谢谢