我想我在我们的服务器(Ubuntu 16.04)上扔了一个小脏脚本,它给了我一些来自Python的纯文本输出。
我想从PHP调用这样的脚本(我知道应该有一些转义完成,但它只是一个测试目前):
<?php
$command = '/usr/local/bin/script.py';
$output = shell_exec($command);
echo $output;
?>
这是script.py
,属于www-data模式774
#!/usr/bin/python
import CoolProp.CoolProp as CP
import argparse
print('Hallo Welt')
如果我注释掉CoolProp
导入它工作。但不知何故,www-data
无法到达包,因此脚本不返回任何内容。
如你所见,我想使用CoolProp
包。
- 所以我试着用
pip install CoolProp
=>安装它,这适用于我的本地用户。但是现在当从用户www-data
调用时 - 在我尝试用目标
--target=/usr/local/lib/site-packages/
安装它之后,但没有帮助。 - 我试图将完整
site-packages/
上的ACL更改为rwx
In end:什么是pip install
一个可以被包括www-data
在内的所有用户使用的包最简单的方法?
我建议您尝试xotihcan首先发布的解决方案,因为这是使大多数 python模块可用于包括www-data在内的所有用户的简单方法。然而,它并不适用于每个 python模块。如果这对您不起作用,或者您只想为www-data用户安装模块,那么使用以下命令:
sudo mkdir /var/www/.local
sudo mkdir /var/www/.cache
sudo chown www-data.www-data /var/www/.local
sudo chown www-data.www-data /var/www/.cache
sudo -H -u www-data pip install CoolProp
我有同样的问题,试图使Python pyro4模块可用于www-data使用。还有另一种方法,但它涉及一些更肮脏的黑客行为。有关更多详细信息,请查看我的问题/答案@我如何使用PHP和Apache web服务器正确调用Python Pyro客户端?
以root用户运行PIP。
这应该能解决问题。