reg*_*or2 6 php python virtualenv ubuntu-16.04
昨晚我花了 5.5 个小时尝试让 PHP 执行并接收 Virtualenv\xe2\x80\x99ed Python 脚本的输出。没有任何效果;除了不是 Virtualenv\xe2\x80\x99ed 的脚本。
\n\n我正在尝试做的事情:
\n\n当我调用它时,我试图让 PHP 调用报纸库输出文本的 virtualenv\xe2\x80\x99d 安装。
\n\n我现在拥有的:
\n\nPHP:(已更新)
\n\n<?php\n$output = exec('newspaper2/bin/python3 /var/www/html/components/python/test.py 2>&1', $output2);\nprint_r(error_get_last());\necho $output2;\necho $output;\nRun Code Online (Sandbox Code Playgroud)\n\n\xe2\x80\xa6这在使用非 virtualenv 脚本时有效
\n\nPython:(更新)
\n\nfrom newspaper import Article\nurl = 'http://example.com/'\narticle = Article(url)\narticle.download()\narticle.html\narticle.parse()\narticle.authors\narticle.publish_date\nstring = article.text\nprint(string)\nRun Code Online (Sandbox Code Playgroud)\n\n问题是什么:
\n\n我可以从命令行运行 PHP 正在运行的脚本,并且它输出得很好。
\n\n我尝试过的:
\n\n使用 PHP,(我已经尝试了 PHP 的所有 \xe2\x80\x9cexec\xe2\x80\x9d 调用)它似乎无法打开虚拟环境并且没有返回任何内容。
\n\n在脚本之前,我调用了 \xe2\x80\x9cpython3\xe2\x80\x9d 和其他一些无济于事的东西。
\n\n是的,我已将其 chmod 为可执行\xe2\x80\xa6
\n\n我感觉这件事应该很简单。
\n\n我已经尝试过其他帖子和整个网络的建议,但无济于事。
\n\n问题:
\n\n感谢您的帮助;
\n\nPS:我运行的是Ubuntu16,PHP7,我需要使用Python3
\n在 virtualenv'ed 脚本中(即通过 setuptools 的入口点安装),您不应触摸 shebang(#!...第一行)。它由 virtualenv 和 setuptools 及相关工具填充。
如果您指定自己的 shebang,那么它不是 virtualenv'ed 脚本。在这种情况下,直接调用 python:
exec('/path/to/venv/bin/python3 /var/www/html/components/python/testing.py');
Run Code Online (Sandbox Code Playgroud)
或者,您可以将 virtualenv 的 python 二进制文件的绝对路径放入 py 脚本中,但这看起来不是一个好主意。
另外,请记住 virtualenv 是不可重定位的。所以他们应该留在他们被创造的道路上。
另请注意,exec()仅返回输出的最后一行。您可能想要shell_exec()或exec('...', $output)获得整个输出。
此外,还不清楚您的脚本发生了什么,以及 stderr 上打印了什么。尝试这个命令看看错误是什么:
exec('/path/to/script 2>&1', $output)
#OR:
exec('/path/to/venv/bin/python3 /path/to/script 2>&1', $output)
Run Code Online (Sandbox Code Playgroud)
好吧,我终于想通了,并且在这个过程中学到了很多东西。我默认使用的库newspaper尝试写入用户主目录的基础。在本例中,它尝试写入www-data, /var/www。
要解决此问题:
settings.py中的文件newspaper。DATA_DIRECTORY = '.newspaper_scraper'并将其更改为DATA_DIRECTORY = '.path/to/writable/directory'我不知道为什么它没有返回本来可以更快解释这一点的错误。
希望这对其他人有帮助。
非常感谢谢尔盖·瓦西里耶夫的帮助。我非常感激。
| 归档时间: |
|
| 查看次数: |
3647 次 |
| 最近记录: |