我有一个运行基于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文件位于同一文件夹中。我在根模式下通过终端运行了相同的命令,并且没有任何错误。但是在下面的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运行机器学习代码,那么它们运行得很好。
答案 0 :(得分:0)
我知道了。我通过将代码放入外壳脚本中,然后通过shell_exec
执行此脚本来解决了该问题。现在可以正常工作了。