从自定义WordPress REST API调用python脚本返回空

时间:2019-04-24 作者:Big Bong

所以,我有一个python脚本,它使用机器学习模型来预测和打印字符串。单独运行该脚本可以提供所需的输出,并需要大约12秒才能完成。现在,使用自定义wordpress rest api端点调用python脚本将返回null。我试着运行标准的hello world python脚本,效果很好。在尝试了许多方法和变体之后,我发现导入库是导致问题的原因。准确地说,导入numpy。sklearn中的数组和/或joblib。externals以某种方式导致输出为null。下面是python代码

#!C:\\xampp\\htdocs\\mil\\Scripts\\python.exe

from datetime import datetime 
import json
from numpy import array
from sklearn.externals import joblib
import traceback

print("hello")
下面是我在自定义RESTAPI get函数中使用的php代码

$topy = \'python C:\\xampp\\htdocs\\mil\\mypython\\venv\\test.py\';
$command = escapeshellcmd($topy);
$output = shell_exec($command);
return $output;
我也尝试了这两种选择,但问题仍然存在,我得到了空白字符串作为输出。1.

ob_start();
passthru(\'python C:\\Users\\Deepon\\PycharmProjects\\Home\\test.py\');
$output = ob_get_clean(); 
return $output;
2。

$descriptorspec = array(
   0 => array("pipe", "r"),
   1 => array("pipe", "w"),
   2 => array("file", "error-output.txt", "a")
);


$process = proc_open(\'python C:\\xampp\\htdocs\\mil\\mypython\\venv\\test.py\', $descriptorspec, $pipes);

if (is_resource($process)) {

print fgets($pipes[1]);
$return_value = proc_close($process);

return $return_value;
}
伙计们,有没有办法解决我的这个难题?

1 个回复
SO网友:Big Bong

谢谢@JacobPeattie。在阅读了更多的文章后,我现在意识到问题确实不在wordpress上,而在php上,我看错了地方。我找到的解决方案,我会写在这里以防万一:

putenv(\'PYTHONPATH=C:\\xampp\\htdocs\\mil\\mypython\\venv\\Lib\\site-packages\');
问题确实出在php上。我是在从搜索查询中删除wordpress后才找到答案的。