www数据用户无法导入已安装的python模块


www-data user unable to import installed python modules

我正在尝试创建一个web服务器,该服务器最终使用以下命令从PHP代码中调用python脚本("MyScript.py")

echo exec("MyScript.py ....some arguments")

MyScript.py实际上包含一个使用RDkit和numpy等其他模块的代码
当我从用户(MKT)运行这个MyScript.py时。。。。它就像一个符咒。

但当它从服务器的PHP脚本中执行时,问题就出现了。/var/www/log/apache2/error.log中的错误消息如下:

ImportError: No module named rdkit
Traceback (most recent call last):
File "./preditar/preditar.py", line 7, in <module>
from rdkit import Chem

我的rdkit安装在/opt/rdkit_2013_06_1/rdkit/中,如果从MKT用户运行它们,结果如下

MKT@mypc$ python -v

然后在python环境中:

import rdkit

这是输出:

import rdkit # precompiled from /opt/RDKit_2013_06_1/rdkit/'__init__.pyc

我认为执行此操作的用户www数据无法访问此模块。。。那么如何将其导入MyScript.py???

注意:当我将MyScript.py修改为一个简单的脚本,只需创建一个文件并向其写入数据……它可以正常工作,没有任何问题,这意味着我没有任何与权限相关的问题。

看起来Python导入搜索路径有问题。尝试这样更改导入:

import sys
sys.path.insert(0, "/opt/RDKit_2013_06_1")
import rdkit