Я пытаюсь создать веб-сервер, который в конечном итоге вызывает питон скрипт («MyScript.py») из PHP коды с помощью следующей командыпользователь WWW-данные не может импортировать установленный питон модули
echo exec("MyScript.py ....some arguments")
MyScript. py действительно содержит код, который использует RDkit и другие модули, такие как numpy.
Когда я запускаю этот MyScript.py от пользователя (MKT) ... он работает как шарм.
Но проблема возникает, когда она выполняется из скрипта 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/и это следующий результат, если запускать их из МКТ пользователь
[email protected]$ python -v
, а затем в питона среде:
import rdkit
Вот результат:
import rdkit # precompiled from /opt/RDKit_2013_06_1/rdkit/\__init__.pyc
Я думаю, что пользовательские www-данные, которые выполняют это, не имеют доступа к этому модулю ... тогда как импортировать это в MyScript.py ???
Примечание: Когда я изменяю MyScript.py на простой скрипт, который просто создает файл и записывает в него данные ... он работает правильно без каких-либо проблем, что означает, что у меня нет никаких проблем, связанных с разрешением.
Да, я сделал это ... но поскольку RdKit установлен в какой-либо другой папке, мне нужно добавить следующую переменную окружения. '_export RDBASE =/opt/RDKit_2013_06_1_;' _export LD_LIBRARY_PATH = $ RDBASE/Библиотека: $ LD_LIBRARY_PATH_ _export PYTHONPATH = $ RDBASE: $ PYTHONPATH_ Пожалуйста, предложите мне, как это сделать ... ??? –
Решил эту проблему слишком ........ для других людей вы можете ссылаться на этот пост [http://ubuntuforums.org/showthread.php?t=1546404] –
Приятно слышать! BTW в Python вы можете установить переменные env с помощью 'os.environ' или' os.putenv() ': https://docs.python.org/2/library/os.html#os.environ – Messa