我正在尝试创建一个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-data无法访问此模块...然后如何在MyScript.py中导入它???
注意:当我将MyScript.py修改为一个只创建文件并向其写入数据的简单脚本时......它可以正常工作,没有任何问题,这意味着我没有任何与权限相关的问题。 / p>
答案 0 :(得分:0)
看起来像Python导入搜索路径的问题。尝试更改导入,如下所示:
import sys
sys.path.insert(0, "/opt/RDKit_2013_06_1")
import rdkit