2011-01-17 13 views
3

私はスクラブルとワープの問題を解決するのに役立つ小さなスクリプトを書いています。 Mac OS X端末から実行するとうまく動作します。スタンドアロンのMacアプリとして、私の友人とスクリプトを共有したいと思います。したがって、私はpy2appをこれに使用しましたが、ダブルクリックするとAppがクラッシュしました。コンソールには、次のエラーメッセージを示しています。私は、エラーを取り除くことができますどのようにpy2appでアプリケーションを作成した後にPython raw_inputが原因でEOFErrorが発生する

import string 

word = raw_input("Enter letters: ") 
dict = open('dict.txt') 
wordmap = {} 
for c in string.lowercase: 
    wordmap[c] = 0 

for c in word: 
    if c in wordmap: 
     wordmap[c] = wordmap[c]+1 

for line in dict: 
    line = line.strip() 
    if len(line) >= 3: 
     linemap = {} 
     for c in string.lowercase: 
      linemap[c] = 0 
     for c in line: 
      if c in linemap: 
       linemap[c] = linemap[c]+1 
     match = True 
     for c in linemap: 
      if linemap[c] > wordmap[c]: 
       match = False 
     if match is True: 
      print line 

:ここ

1/17/11 2:13:51 PM [0x0-0x4a44a4].org.pythonmac.unspecified.warp[9875] Enter letters: Traceback (most recent call last): 
1/17/11 2:13:51 PM [0x0-0x4a44a4].org.pythonmac.unspecified.warp[9875] File "/Users/***/wordwarp/dist/warp.app/Contents/Resources/__boot__.py", line 137, in <module> 
1/17/11 2:13:51 PM [0x0-0x4a44a4].org.pythonmac.unspecified.warp[9875]  _run('warp.py') 
1/17/11 2:13:51 PM [0x0-0x4a44a4].org.pythonmac.unspecified.warp[9875] File "/Users/***/wordwarp/dist/warp.app/Contents/Resources/__boot__.py", line 134, in _run 
1/17/11 2:13:51 PM [0x0-0x4a44a4].org.pythonmac.unspecified.warp[9875]  execfile(path, globals(), globals()) 
1/17/11 2:13:51 PM [0x0-0x4a44a4].org.pythonmac.unspecified.warp[9875] File "/Users/***/wordwarp/dist/warp.app/Contents/Resources/warp.py", line 4, in <module> 
1/17/11 2:13:51 PM [0x0-0x4a44a4].org.pythonmac.unspecified.warp[9875]  word = raw_input("Enter letters: ") 
1/17/11 2:13:51 PM [0x0-0x4a44a4].org.pythonmac.unspecified.warp[9875] EOFError: EOF when reading a line 
1/17/11 2:13:51 PM warp[9875] warp Error 
1/17/11 2:13:51 PM warp[9875] warp Error 
1/17/11 2:13:52 PM com.apple.launchd.peruser.501[469] ([0x0-0x4a44a4].org.pythonmac.unspecified.warp[9875]) Exited with exit code: 255 

を実際のスクリプトですか?

答えて

2

py2appによってアプリとしてラップされたPythonプログラムには、入力を行う端末ウィンドウがありません。たとえば、PythonのTkinterモジュールを使用して、入力を入力して出力を提供するという、より洗練された方法を提供する必要があります。スクリプトが端末から実行され、クリック可能なアプリケーションを作成する場合は、Terminalセッションを起動するAutomaterまたはAppleScriptアプリケーションとしてパッケージ化する方が簡単でしょう。

+0

です。 AutomatorまたはAppleScriptを使用してこれを行う最も簡単な方法は何ですか?ただ2つのファイルがあります:warp.pyとdict.txt – occasionalcoder123

+0

私はpy2appを使っていませんが、ファイルやコマンドラインオプションから 'word'を読み込むことは許されますか? – James

+0

最初に 'py2app'を使う理由は、Finderでダブルクリックすることで起動できる標準のOS X GUIアプリケーションを作ることです。その場合、コマンドラインはありません。あなたのアプリケーションがシェルコマンドラインから実行されることが予想される場合は、 'py2app'を使うべきではないでしょう。ほとんどのクロスプラットフォームPythonパッケージのように、Python Distutilsとコンソールスクリプトでパッケージ化してください。 –

関連する問題