[请益] PHP执行Python requests套件

楼主: o55665516 (elephant)   2020-05-20 01:16:24
请问版上各位高手
我用的环境是google GCP Ubuntu
用PHP去exec简单的python是print的出来
例如以下
[execpython.php]
<?PHP
$command = escapeshellcmd('python test.py');
$output = shell_exec($command);
echo $output;
?>
[test.py]
a = 1
print( a + 2)
print(1,2,3)
但如果是去call含有request套件的py就完全无反应,但在终端机执行是OK
例如以下这支(URL有改成正常网站)
https://imgur.com/NeIsVx5
小弟有稍微爬一下,好像是说Apache环境变量要改!?不太晓得确切原因...
麻烦各位大神了~先叩谢大家
作者: ddoll288 (风儿卿卿)   2020-05-20 09:06:00
因为php的user跟你直接下cmd的shell不一样,环境变量也不一样, 所以python没办法找到package, 你要告诉pythonrequest套件的位置在那边才能跑https://tinyurl.com/yct2hqer
作者: GALINE (天真可爱CQD)   2020-05-20 11:29:00
是说有点好奇,为何不用纯 PHP 的方案?像是 php-html-parser,虽然人气是比漂亮汤还要低...
作者: ddoll288 (风儿卿卿)   2020-05-20 14:14:00
因为python爬虫比较好写,尤其是多执行绪状况下php大多跑web,通常是靠httpd来挤多执行绪,自己的多执行绪很难写,加上大数据风行,所以后台任务大多用py写了https://github.com/krakjoe/pthreads/issues/929pthreads已死,parallel再生,PCNTL不知所云py的threading就简单多了,反正php的多执行绪就是烂
作者: GALINE (天真可爱CQD)   2020-05-20 18:39:00
pcntl 就...老派...(远目不过如果是这个方向,直觉是不会从网页发动
作者: yanli2 ( Yan™)   2020-05-21 04:42:00
python跑虚拟机吗? 有的话你py档要指定环境
作者: LinLinJim (NiHow)   2020-05-22 02:01:00
用Flask或Django包成api再用呢
作者: chaoms (小企鹅)   2020-06-23 14:27:00
Swoole呢?

Links booklink

Contact Us: admin [ a t ] ucptt.com