2016-11-30 1 views
0

У меня есть код python, который работает в моем терминале и печатает результат. Я написал php-код, который выполняет код python с помощью exec («python example.py argument_1»). Код php также выводит результат при выполнении его с терминала.Нет модуля с именем lxml при запросе url из браузера/curl

Но когда я пытаюсь вызвать php из браузера (или) через запрос на завивание, результат php не отображается. В журнале ошибок Apache отображается следующее сообщение.

Traceback (most recent call last): 
    File "./example.py", line 3, in <module> 
    from lxml import etree 
ImportError: No module named lxml 

Просьба изучить этот вопрос.

Решение: я имел конфликт с версиями питона

Exec ("/ USR/местные/бен/питон example.py ARGUMENT_1") разрешил мой вопрос

ответ

0

I подумайте, что вы можете распечатать sys.path (модули будут любимы python через этот путь) для более подробной информации. вы, возможно, разработаете свой код в Linux.
В linux каждый пользователь имеет разные sys.path.
, например, я использую корень для запуска питона, чтобы получить sys.path в питона,

'/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 в питона

['', 
'/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'] 

так, вам возможно, использовать другого пользователя для выполнения кода.

+0

При вызове php-файла из браузера у меня нет привилегий root. Аналогично, я запускаю его из командной строки как непривилегированный пользователь, но во втором случае я получаю результат. Я использую apache в OS X. –

+0

вы можете распечатать sys.path в этих двух случаях и сравнить результат. Возможно, это полезно – mahome

+0

Пути кажутся одинаковыми. –

Смежные вопросы