2012-01-26 3 views
3

私は2次元アーケードゲームの問題に取り組んでいます。これは、モジュールpygameを使用してPythonでプログラミングされており、2日間解決できません。Pygame Distribution - ランタイムエラー

問題は次のとおりです。プログラムを正しく実行しているWindows実行可能ファイルを作成したい。私はすでに.exeファイルを作成するために管理が、私はすぐに私はexeファイルを起動するとエラーが表示されます。

Runtime Error! 
Path\MyGame.exe 
This application has requested the Runtime to terminate it in an unusual way. 
Please contact the application's support team for more information. 

私は、たとえば、1を構築することが容易になり、すべてのモジュールと.exeファイルを作成しようとしましたcx_freezepy2exe,pyinstaller。最後には、私が使ったものは同じではありません。同じエラーがあります。私はすでに.exeファイルを別のPCで起動しようとしましたが、失敗しました。私のMicrosoft Visual C++ Redistributableを更新しましたが、何も助けられませんでした。

したがって、フォルトは自分のコードのどこかにある必要があります。プログラムは正常に動作していますが、正常に動作するファイルが.exeにならないようにする必要があります。

コードには1000行程度のコードがありますが、コード全体をチェックする人は尋ねるのが大変ですが、誰かがこれに類似した問題を抱えていることや、このエラーがなぜ表示されているのかを知ることができます。

the code hereがあります。

答えて

4

問題はあなたのコードではありません。問題はあなたの.exeをどのように生成するかです。パイゲでそれをすることは本当の雌犬ですが、いくつかのハッキングとgoogle'ingでそれを行うことができます。

これは、あなたが始める必要があります:http://pygame.org/wiki/Pygame2exe

+0

こんにちはナイトクラッカー、あなたの答えをありがとう。私はすでにあなたが投稿したスクリプトでそれを試しましたが、py2exeも使用しています。私のコードには問題があると思います... – Chocolate

+0

いいえ、コードが 'python yourfile.py'でうまく動作すれば問題はありませんコード。 googleでこの問題の詳細を検索してみてください。私はまた、py2exeを使うことを提案しています。なぜなら、ウィンドウのためには最も確かなことだからです。 – orlp

+0

私はちょうどそれを信じていない...私は上記のスクリプトでもう一度それを試して、今は動作します!どうもありがとうございます!!! 2日は無駄だが気にする人は:D thx !! よろしくお願いします。 – Chocolate

3

は、同様の問題を抱えていて、その一つは、あまりにも。

数週間後(この問題があったとしても)私はこの問題を解決したと言ってうれしいです!私の問題(http://i.stack.imgur.com/WpkjR.png)の:)

第一部分: 私はそれに「除外」の部分を追加することでsetup.pyスクリプトを編集して、それを解決しました。その結果、実行可能ファイルの作成に成功しました!

修正setup.pyスクリプト:

from distutils.core import setup 
import py2exe 
setup(windows=['source_static.py'], options={ 
      "py2exe": { 
       "excludes": ["OpenGL.GL", "Numeric", "copyreg", "itertools.imap", "numpy", "pkg_resources", "queue", "winreg", "pygame.SRCALPHA", "pygame.sdlmain_osx"], 
       } 
      } 
    ) 

ですから、同様の問題がある場合は、ちょうどこの「除外」ラインにそれらの「行方不明」モジュールを置きます。

第二の部分:私は、実行可能ファイルの作成に成功した後

が、私は次の問題を抱えていた:アプリケーションが異常な方法で終了するランタイムを要求しているお問い合わせください...。この問題を解決する方法を考えて何日も何日も捜した後、私はそれを行う方法を見つけました。私はその問題がとてもばかげているとは信じられませんでした。私はcouldn、いくつかのシステムフォント名(()文字列でなければなりません例えば、「ゴシック」)、およびコンパイルに「なし」を変更した後

font1 = pygame.font.SysFont(None, 13) 

:問題は、フォント定義で、私のコードにありました私の.exeファイルが正常に動作したとは思わない!

font1 = pygame.font.SysFont("Arial", 13) 

もちろん、独自のフォントを使用できますが、パスを指定してプログラムで定義する必要があります。

この問題が発生している皆様には、この手順を試してください。成功することを願っています。 私はこれらの問題を解決しようと数日と数週間を失ったので、これがあなたを助けることを本当に願っています。私はさらに多くの他の.exeビルダーとセットアップスクリプトでpythonとpygameのすべてのバージョンで自分の.exeファイルを作ろうとしましたが、運がありません。これらの問題に加えて、私は以前にも多くの問題を抱えていましたが、私はstackoverflow.comで答えを見つけました。

私は、この問題を解決し、同じ問題に直面した場合にお手伝いする方法を見つけたことをうれしく思っています。

小さなヒント(私もやったもの):

第一:あなたのMicrosoft Visual C++ライブラリが最新のものに更新します。

2番目:実行可能プログラムに必要なイメージやフォントがある場合は、distフォルダ(.exeファイルが作成されています)にそれらを含めます。

3番目:.exeファイルを作成するときに、setup.pyスクリプトがあるフォルダ(メインスクリプトが使用するすべてのファイルとディレクトリ)に必要なファイルをすべて含めます。

使用しのPython 2.7のx64pygameのpy2exe

1

同じ問題があった場合、pygameのデフォルトのフォントファイルを配布フォルダに入れて解決しました。それはプロジェクトで使用され、私はそれがビルドに自動的に含まれると仮定しました。