При попытке выполнить код Python из PHP с помощью
echo shell_exec('python search.py "'.$a.'" "'.$b.'"');
скрипт Python превосходит $ a и $ b, когда импортируется только sys
#!/usr/bin/env python
import sys
sys.stderr = sys.stdout
a = sys.argv[1]
b = sys.argv[2]
print a+" && "+b
но когда я пытаюсь импортировать что-то еще, например Numpy, php ничего не возвращает:
#!/usr/bin/env python
import sys
from nltk.corpus import stopwords
from nltk import word_tokenize
sys.stderr = sys.stdout
a = sys.argv[1]
b = sys.argv[2]
print a+" && "+b
я пытаюсь запустить его с самой машины (из ssh) и с него все работает просто отлично ..
я уже пытался разобраться в этом вопросе о stackoverflow и других местах, но мне кажется, что ничего не работает ..
Я использую Debian и использую python2.7
Я получаю эту ошибку:
Traceback (most recent call last): File "search.py", line 5, in from nltk.corpus import stopwords File "/usr/local/lib/python2.7/dist-packages/nltk/__init__.py", line 137, in from nltk.stem import * File "/usr/local/lib/python2.7/dist-packages/nltk/stem/__init__.py", line 29, in from nltk.stem.snowball import SnowballStemmer File "/usr/local/lib/python2.7/dist-packages/nltk/stem/snowball.py", line 26, in from nltk.corpus import stopwords File "/usr/local/lib/python2.7/dist-packages/nltk/corpus/__init__.py", line 66, in from nltk.corpus.reader import * File "/usr/local/lib/python2.7/dist-packages/nltk/corpus/reader/__init__.py", line 105, in from nltk.corpus.reader.panlex_lite import * File "/usr/local/lib/python2.7/dist-packages/nltk/corpus/reader/panlex_lite.py", line 15, in import sqlite3 File "/usr/lib/python2.7/sqlite3/__init__.py", line 24, in from dbapi2 import * File "/usr/lib/python2.7/sqlite3/dbapi2.py", line 28, in from _sqlite3 import * ImportError: /usr/lib/python2.7/lib-dynload/_sqlite3.x86_64-linux-gnu.so: failed to map segment from shared object
Спасибо за помощь!
Решено!
Должен был указать папку Python в PHP
И добавить импорт CGI, CGITB в Pythonn
Вам нужно добавить весь путь к команде echo. Что-то вроде:
echo shell_exec('usr/bin/doc/python search.py "'.$a.'" "'.$b.'"');
спасибо адитья
Других решений пока нет …