昨晚我花了5.5小時試圖讓PHP執行並接收Virtualenv'ed Python腳本的輸出。沒有工作;除了不是Virtualenv的腳本。使用PHP調用Virtualenv'ed Python腳本
我所試圖做的事:
我試圖讓PHP呼叫virtualenv'd安裝報業LIB輸出文本的時候我把它。
我現在擁有的一切:
PHP:(更新)
<?php
$output = exec('newspaper2/bin/python3 /var/www/html/components/python/test.py 2>&1', $output2);
print_r(error_get_last());
echo $output2;
echo $output;
...這使用非的virtualenv腳本時,工作
的Python:(更新)
from newspaper import Article
url = 'http://example.com/'
article = Article(url)
article.download()
article.html
article.parse()
article.authors
article.publish_date
string = article.text
print(string)
什麼問題是:
我可以運行PHP是在命令行運行腳本,它輸出就好了。
我曾嘗試:
使用PHP,(我已經嘗試了所有的「高管」呼籲PHP)它似乎無法打開虛擬環境,並沒有返回。
之前的腳本我稱爲「python3」和其他一些事情無濟於事。
是的,我已經chmoded它是可執行...
我覺得這應該是如此簡單。
我已經嘗試過在其他帖子和網絡上的建議無濟於事。
問題:
- 我有沒有成立的virtualenv錯了嗎?
- 在Python腳本的頂部,而不是「#!/ usr/bin/env python3」應該調用別的東西嗎?
- 如果是這樣,我在哪裏可以找到它?我應該從頭開始,並將幫助 ?
謝謝你的幫助;
PS:我正在運行Ubuntu16,PHP7,我需要使用Python3
我明白了。由於我修改了shebang,是否需要重新創建virtualenv?我不認爲我移動了virtualenv腳本,如果是的話,我刪除它並重新開始?謝謝 – regor2
要麼恢復原來的shebang,要麼重新開始。 –
好吧,我不確定如何「恢復原來的shebang」,所以我創建了一個新的virtualenv。我在裏面創建了一個新腳本,它沒有創建自己的shebang。我用'newspaper2/bin/python3/var/www/html/components/python/test.py'通過命令行運行它。 PHP沒有任何東西。它拋出'sh:1:newspaper2/bin/python3:not found'有什麼建議嗎? – regor2