2012-01-23 62 views
0

我正在使用python的nltk来做一些有趣的事情来从PHP输入字符串,但我在将其输出到浏览器时遇到一些困难。我的代码如下所示:在浏览器中运行Python脚本的奇怪问题

system("python test.py command line arguments"); 

这在命令行正确输出不管是在我的test.py文件。但是,在浏览器中它将工作,除非存在特定的代码。

内test.py:

import string 
import sys 
from nltk import word_tokenize as wt 
from nltk.corpus import wordnet as wn 

x = "" 
for item in sys.argv: x += item+" " 

i = wt(x) 
result = "" 
wn.morphy(i[0]) 
print "hello world" 

这不会在浏览器打印的“Hello World”,但只有当以上代码行是存在的。无

wn.morphy 

它会运行。不幸的是我需要使用wn.morphy。为什么在我的test.py文件中使用该特定行代码的浏览器中不起作用?我已经关闭了安全模式,这可以让我用python输出到浏览器

+0

你能展示一个完整的PHP脚本展示这个问题吗? –

+0

这是字面上显示问题的整个PHP脚本。在服务器上使用php和python与nltk运行这两个应该复制这个问题 – user1164238

回答

0

实际上,这段代码适用于我的PHP CLI,无论我是否包含wn.morphy行,所以我认为你的问题在其他地方或版本相关。

您是否记得下载'wordnet'语料库?如果没有,运行

>>> import nltk 
>>> nltk.download('wordnet') 

在Python中,然后再试一次。我可以看到脚本错误,因为它无法到达语料库。

+0

我没有下载wordnet语料库,这就是为什么它在控制台中工作 - 它肯定在python中的错误,但我无法想象它为什么会只在浏览器中这样做。我检查了phpdoc,两者都使用相同的ini。 – user1164238

0

什么是错误?这可能是由于WordNet的大小(这是相当大的)还是Python/NLTK花费的时间?实时Web服务器的配额可能比交互式控制台会话更严格。

+0

我不知道错误可能是什么。导入wordnet的工作,但只要我使用它的功能,它不。有可能wordnet太大而无法加载浏览器本身,只是由于其不同的限制,但服务器本身是相同的,因为我使用的命令行是ssh。 – user1164238