Пользователь www-data не может импортировать установленные модули Python ⇐ Php
-
Anonymous
Пользователь www-data не может импортировать установленные модули Python
Я пытаюсь создать веб-сервер, который в конечном итоге вызывает скрипт Python («MyScript.py») из кода PHP с помощью следующей команды
echo exec("MyScript.py ....некоторые аргументы") MyScript.py на самом деле содержит код, который использует RDkit и другие модули, такие как numpy.
Когда я запускаю этот MyScript.py от пользователя (MKT)....он работает просто великолепно.
Но проблема возникает, когда он выполняется из PHP-скрипта с сервера. Сообщение об ошибке в /var/www/log/apache2/error.log выглядит следующим образом:
ImportError: нет модуля с именем rdkit Traceback (последний вызов последний): Файл "./preditar/preditar.py", строка 7, в из rdkit import Chem Мой rdkit установлен в /opt/RDKit_2013_06_1/rdkit/, и это следующий результат, если запустить его от пользователя MKT
MKT@mypc$ python -v а затем в среде Python:
импортировать rdkit Вот результат:
import rdkit #, предварительно скомпилированный из /opt/RDKit_2013_06_1/rdkit/\__init__.pyc Я думаю, что пользователь www-data, который выполняет это, не имеет доступа к этому модулю... тогда как импортировать это в MyScript.py???
Примечание. Когда я модифицирую MyScript.py до простого сценария, который просто создает файл и записывает в него данные... он работает правильно, без каких-либо проблем, что означает, что у меня нет проблем, связанных с разрешениями.
Примечание. >
Я пытаюсь создать веб-сервер, который в конечном итоге вызывает скрипт Python («MyScript.py») из кода PHP с помощью следующей команды
echo exec("MyScript.py ....некоторые аргументы") MyScript.py на самом деле содержит код, который использует RDkit и другие модули, такие как numpy.
Когда я запускаю этот MyScript.py от пользователя (MKT)....он работает просто великолепно.
Но проблема возникает, когда он выполняется из PHP-скрипта с сервера. Сообщение об ошибке в /var/www/log/apache2/error.log выглядит следующим образом:
ImportError: нет модуля с именем rdkit Traceback (последний вызов последний): Файл "./preditar/preditar.py", строка 7, в из rdkit import Chem Мой rdkit установлен в /opt/RDKit_2013_06_1/rdkit/, и это следующий результат, если запустить его от пользователя MKT
MKT@mypc$ python -v а затем в среде Python:
импортировать rdkit Вот результат:
import rdkit #, предварительно скомпилированный из /opt/RDKit_2013_06_1/rdkit/\__init__.pyc Я думаю, что пользователь www-data, который выполняет это, не имеет доступа к этому модулю... тогда как импортировать это в MyScript.py???
Примечание. Когда я модифицирую MyScript.py до простого сценария, который просто создает файл и записывает в него данные... он работает правильно, без каких-либо проблем, что означает, что у меня нет проблем, связанных с разрешениями.
Примечание. >
Мобильная версия