laravel python脚本执行

时间:2019-03-06 10:10:38

标签: python laravel laravel-5.4 laravel-5.7

我必须执行一个python脚本,该脚本会将大量数据提取到数据库中。当我使用命令PHP artisan serve运行项目时,它运行良好。但是在调用如下所示的公用文件夹URL之后,它将引发错误

localhost/project/public

错误:

  

命令“ python /opt/lampp/htdocs/laravel/projectname/beta/projectname/public/python/pubmed_abstract/pubmed_engine.py'{“ term”:“ cancer”}'“”失败。

     

退出代码:1(一般错误)工作目录:/ opt / lampp / htdocs / laravel / infocytosis / beta / infocytosis / public输出:

     

================错误输出:===============

     

回溯(最近一次通话最近):文件“ /opt/lampp/htdocs/laravel/projectname/beta/projectname/public/python/pubmed_abstract/pubmed_engine.py”,行5,来自Bio import Entrez ImportError:否名为Bio

的模块

我使用的代码:

   $python_path=public_path().'/python/doom_abstract/doom_engine.py';

   $variables='{"term":"'.addslashes($request->term).'"}';

   $process = new Process("python $python_path '$variables'");
   $process->run(); 

  return redirect()->back()->withMessage('Filter saved successfully');

2 个答案:

答案 0 :(得分:1)

您可以尝试以下一个

$python_path=public_path('python/doom_abstract/doom_engine.py');

答案 1 :(得分:0)

代替:

$process = new Process("python $python_path '$variables'");
$process->run(); 

怎么样

shell_exec("python $python_path '$variables'")