0
我試圖創建一個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到一個簡單的腳本,它只需創建一個文件,並寫入數據到它...它正常工作,沒有這意味着我沒有相關權限的任何問題的任何問題。
是的,我做到了......但作爲安裝在其他文件夾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