[英]Python Script Failing to Execute from PHP exec()
我有一个简单的PHP函数,它应该在调用时执行Pyton脚本。 我在我的php程序中多次尝试过这种函数,但不知怎的,这次函数根本没有执行python脚本。 当我从命令提示符访问脚本并运行python testing.py
它成功执行。 有一件事我想提一下,这个脚本有一些严格的python的NLTK库实现,并且执行和执行它的操作需要20多秒(即数据处理和存储到db)。 执行中的延迟导致了这个问题,还是这次我还缺少其他的东西?
function success(){
$mystring = exec('python testing.py');
$mystring;
if(!$mystring){
echo "python exec failed";
}
else{
echo "<br />";
echo "successfully executed!";
}
你必须使用python
和你的文件的完整路径。 你可以从which python
命令找到前者,最有可能输出'/ usr / bin / python',你应该已经知道后者了。 所以你的命令看起来像这样:
$mystring = exec('/usr/bin/python /home/user/testing.py');
并且你应该确保你的python脚本具有所有适当的权限,因为你的web服务器很可能是以不同的用户身份运行,所以权限应该是“-rwxrwxr-x”或者接近的。
尝试使用python程序的确切路径。
$mystring = exec('python testing.py');
尝试删除$mystring;
线
function success() {
$mystring = exec('python testing.py');
if(!$mystring){
echo "python exec failed";
} else {
echo "<br />";
echo "successfully executed!";
}
}
出于测试目的尝试:
function success() {
$mystring = exec('python testing.py', $output);
var_dump($output);
}
exec()或其他任何东西都没有问题。
问题是nltk模块无法找到nltk_data目录。 因为它只是找到系统中nltk_data的位置:通常是〜/ nltk_data。
现在导入在运行该函数时添加该路径。
import nltk;
现在,nltk.data.path是搜索模块的位置列表。
你可以做nltk.data.path.append(“你的位置/目录”);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.