昨晚我花了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