www数据的用户无法导入安装Python模块
问题描述:
我试图创建一个Web服务器,最终调用从PHP代码的Python脚本(“MyScript.py”)用下面的命令www数据的用户无法导入安装Python模块
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用户
[email protected]$ 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
是的,我做到了......但作为安装在其他文件夹RdKit它需要我添加下列环境变量。 '_export RDBASE = /选择/ RDKit_2013_06_1_;' _export LD_LIBRARY_PATH = $ RDBASE/lib:$ LD_LIBRARY_PATH_ _export PYTHONPATH = $ RDBASE:$ PYTHONPATH_ 请教我如何做到这点... ??? – 2014-08-31 10:38:47
解决了这个问题太........其他人可以参考这篇文章[http://ubuntuforums.org/showthread.php?t=1546404] – 2014-08-31 14:16:46
很好听! BTW在Python中,你可以使用'os.environ'或'os.putenv()'设置ENV变量:https://docs.python.org/2/library/os.html#os.environ – Messa 2014-08-31 20:25:08