[請益] 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