I have to execute a Python script which pulls a large amount of data to the database. It is working fine while I am running a project using the command php artisan serve
, but it is throwing an error after calling the public folder URL given below
localhost/project/public
Error:
The command "python /opt/lampp/htdocs/laravel/projectname/beta/projectname/public/python/pubmed_abstract/pubmed_engine.py '{"term":"cancer"}'" failed.
Exit Code: 1(General error) Working directory: /opt/lampp/htdocs/laravel/infocytosis/beta/infocytosis/public Output:
================ Error Output: ================
Traceback (most recent call last): File "/opt/lampp/htdocs/laravel/projectname/beta/projectname/public/python/pubmed_abstract/pubmed_engine.py", line 5, in from Bio import Entrez ImportError: No module named Bio
Code I used:
$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');
php artisan serve
is using php-cli to run commands but when you use a web server (apache or nginx), there is no php-cli. try something more pure. likeexec
orshel_exec
instead ofProcess
– Myocardiograph