【发布时间】:2018-01-26 07:13:26
【问题描述】:
尝试使用
echo shell_exec('python search.py "'.$a.'" "'.$b.'"');
当仅导入 sys 时,python 脚本超过了 $a 和 $b
#!/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
感谢您的帮助!
解决了! 应该在 PHP 中指定 Python 的文件夹 并将 import cgi, cgitb 添加到 Pythonn
【问题讨论】: