У меня есть код Python, который работает в моем терминале и печатает результат. Я написал PHP-код, который выполняет код Python, используя exec («python example.py arguments_1»). Код php также печатает результат при выполнении его из терминала.
Но когда я пытаюсь вызвать php из браузера (или) через запрос curl, результат php не отображается. Журнал ошибок Apache отображает следующее сообщение.
Traceback (most recent call last):
File "./example.py", line 3, in <module>
from lxml import etree
ImportError: No module named lxml
Пожалуйста, посмотрите на эту проблему.
Решение :
У меня был конфликт с версиями Python
exec («/ usr / local / bin / python example.py arguments_1») решил мою проблему
Я думаю, что вы можете напечатать sys.path (модули будут любить python через этот путь) для более подробной информации. Вы можете разработать свой код в Linux.
В linux у каждого пользователя свой sys.path.
например, я использую корень запустить Python, чтобы получить sys.path в Python,
'/usr/bin',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/IPython/extensions']
используйте другого пользователя, чтобы получить sys.path в python
['',
'/home/mahome/anaconda2/bin',
'/home/mahome/anaconda2/lib/python27.zip',
'/home/mahome/anaconda2/lib/python2.7',
'/home/mahome/anaconda2/lib/python2.7/plat-linux2',
'/home/mahome/anaconda2/lib/python2.7/lib-tk',
'/home/mahome/anaconda2/lib/python2.7/lib-old',
'/home/mahome/anaconda2/lib/python2.7/lib-dynload',
'/home/mahome/anaconda2/lib/python2.7/site-packages',
'/home/mahome/anaconda2/lib/python2.7/site-packages/Sphinx-1.4.1-py2.7.egg',
'/home/mahome/anaconda2/lib/python2.7/site-packages/setuptools-23.0.0-py2.7.egg',
'/home/mahome/anaconda2/lib/python2.7/site-packages/IPython/extensions',
'/home/mahome/.ipython']
Таким образом, вы можете использовать другого пользователя для выполнения вашего кода.
Других решений пока нет …