php - 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 运行机器学习代码,因为我尝试运行它们运行完美的小代码。
解决方案
我想到了。我通过将我的代码放在一个 shell 脚本中,然后通过shell_exec
. 它现在工作正常。
推荐阅读
- javascript - 我的 keyup 调用 click() 但 click() 不委托
- mysql - DBMS 似乎要提交中间事务(新手问题)
- reactjs - 重复的 JSON 数据 - React Native
- javascript - 我想根据它们的 id 对两个数组的对象进行联合
- javascript - 带有 webpack 的车把 - 变量没有传递给自定义帮助程序
- mips - 我的汇编代码有这个错误:“无效的程序计数器值:0x00000000 Go:执行因错误而终止”
- bash - Athena 查询通过 shell 脚本提交
- python - 如何使用 Python 使用 OAuth 和 Outlook 发送电子邮件?
- css - 在 SASS 中使用类数组
- java - 如何从 android 的 FireStore 中仅检索字段(字段名称)作为列表数组?