2012-01-23 5 views
0

私はpythonのnltkを使用して、PHPから文字列を入力する面白いことをしていますが、ブラウザに出力するのが難しいです。私のコードは次のようになっています:ブラウザで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スクリプト全体です。この問題を複製するには、nltkを使ってphpとpythonを使ったサーバ上で両方を実行する必要があります。 – user1164238

答えて

0

実際には、このコードはwn.morphy行を含めるかどうかにかかわらず、PHP CLI上で動作します。あなたの問題は他の場所やバージョンに関連しています。

'wordnet'コーパスをダウンロードしてください。そうでない場合は、Pythonで

を実行してから、もう一度やり直してください。私はスクリプトがコーパスに到達できないためにエラーが出るのを見ることができました。

+0

私はwordnet corpusをダウンロードしました。それがコンソールで動作するのです - それは間違いなくpythonのエラーですが、ブラウザでのみ行います。私はphpdocをチェックし、両方が同じiniを使用しています。 – user1164238

0

エラーは何ですか?それはWordNetのサイズ(かなり大きい)またはPython/NLTKがそれをロードするのにかかる時間に起因するのでしょうか?ライブWebサーバーはおそらく対話型のコンソールセッションよりも厳しいクォータを持つことになります。

+0

エラーの内容を知りません。 wordnetのインポートは機能しますが、関数を使用するとすぐには機能しません。 wordnetが大きすぎてブラウザ自体の負荷が大きすぎる可能性がありますが、サーバー自体は同じものですが、私が使用しているコマンドラインはsshです。 – user1164238

関連する問題