首页 > 解决方案 > shell_exec 可以运行我的机器学习代码吗?它在终端上运行良好,但在 shell_exec 中返回 NULL

问题描述

我有一个运行基于 keras 的神经网络的 python 脚本,它运行良好,但是当我在我的 php 中通过 shell_exec 运行该脚本并使用 var_dump 时,我得到“NULL”。

我已经看到了很多解决方案。我已将 php.ini 中的 max_execution_time 和 max_input 时间增加到 5000。我还在命令中提供了文件的完整路径和所需的环境。此外,我已授予文件夹的所有权限(lampp、htdocs、(我的 php 文件夹))这是最终在 shell_exec 中调用的命令。

source /home/characterleveldl/anaconda3/bin/activate /home/characterleveldl/anaconda3/envs/spyderr && python fyp_final.py 5 /opt/lampp/htdocs/charlevel_fyp/train.csv /opt/lampp/htdocs/charlevel_fyp/test.csv 86save_true.pdf 86save_random.pdf 86save_result.txt 2>&1

fyp_final.py、train.csv、test.csv 一切都存在于与 php 文件相同的文件夹中。我在 root 模式下通过终端运行了相同的命令,它运行时没有任何错误。但在下面的 php 代码中,它返回 NULL。

$cmd_initial ='source /home/characterleveldl/anaconda3/bin/activate /home/characterleveldl/anaconda3/envs/spyderr && ';

$cmd = $cmd_initial . 'python fyp_final.py ' . $num_classes . ' ' . $train . ' ' . $test . ' ' . $save_true . ' ' . $save_random . ' ' . $save_text . ' 2>&1'; 
$command = escapeshellcmd($cmd);
$output = shell_exec($command);
var_dump($cmd);
var_dump($output);

请帮我。如果我做错了什么,或者甚至可以从 php 运行机器学习代码,因为我尝试运行它们运行完美的小代码。

标签: phppythonmachine-learningshell-exec

解决方案


我想到了。我通过将我的代码放在一个 shell 脚本中,然后通过shell_exec. 它现在工作正常。


推荐阅读