2012-03-21 4 views
3

現在、私はpythonとpygameで作られたゲームをパッケージ化しようとしています。両方の世界のベスト:ゲーム用のpythonパッケージ

私はpy2exeを使用してパッケージ化していますが、ここで何か質問をしましたが、すばらしい解決策が見つかりませんでした。私はexeを含むフォルダを作成し、圧縮してオンラインにすることができます。 setup.pyを実行すると、すべての依存関係がlibrary.zipになります。つまり、プログラムを実行すると動作しません。

他の誰かがこの問題にぶつかり、解決するために"skip archive = true"オプションを使用して終了しました。そして、はい、それは私のためにも機能しますが、私はプログラムが問題なく実行されるようにする方法があることを望んでいましたが、無数のファイルでフォルダを乱雑にしませんでした。私はそれを正しく理解すれば、プログラムはpygameののミキサーモジュールを検索/到達できないことを意味し、

ImportError: MemoryLoadLibrary failed loading pygame\mixer.pyd 

:私はlibrary.zipでに実行している問題は、非常に正確には

。ここで

は、私が現在使用しています(とそれが動作していない)、セットアップスクリプトです:あなたのsetup.pyで

from distutils.core import setup 
import py2exe, sys, os 

sys.argv.append('py2exe') 

data_files = [('resources', ['resources/step.wav', 
        'resources/wind2.wav', 
        'resources/The Steppes.ogg', 
        'resources/warrior3-nosword-notassle.png', 
        'resources/warrior3-sword.png', 
        'resources/warrior2-blood1.png', 
        'resources/warrior2-blood2.png', 
        'resources/warrior2-blood3.png', 
        'resources/warrior2-blood4.png', 
        'resources/warrior3-up.png', 
        'resources/warrior3-kneel.png', 
        'resources/warrior3-kneel-nosword.png', 
        'resources/warrior2-blood2-kneel.png', 
        'resources/warrior2-blood3-kneel.png', 
        'resources/warrior2-blood4-kneel.png', 
        'resources/warrior3-death.png', 
        'resources/warrior3-offarm.png', 
        'resources/menu1.png', 
        'resources/plains3-top-nomount.png', 
        'resources/mountains.png', 
        'resources/plains5-bottom.png', 
        'resources/plains3-bottom.png', 
        'resources/cloud1.png', 
        'resources/warrior2-sword.png', 
        'resources/warrior2-hand.png', 
        'resources/blue-tassle1.png', 
        'resources/blue-tassle2.png', 
        'resources/blue-tassle3.png', 
        'resources/blue-tassle4.png'])] 

setup(options = {'py2exe': {"bundle_files": 1}}, 
    data_files = data_files, 
    console = [{'script': "steppes2.0.py"}], 
    zipfile = None 
    ) 

答えて

1

このコードは、単一の実行可能ファイルを生成するのトリックを行う必要があります(あなたはまだ持っています別にmsvc dllを配布する)

from distutils.core import setup 
import py2exe, sys, os 

sys.argv.append('py2exe') 

setup(
     options = {'py2exe': {'bundle_files': 1}}, 
     console = [{'script': "myscript.py"}], 
     zipfile = None, 
) 
+0

私はうまくいきませんでした。以前とまったく同じ問題。私の問題は1つの実行可能ファイルとしては得られません(それはうまくいくでしょうが)。問題は、パッケージ化されたものにアクセスできないということです。コマンドプロンプトでプログラムを実行するとうまく動作しますが、パッケージ化してexeを実行すると、上記のエラーが表示されます。現在のセットアップスクリプトを投稿します。これは役に立ちます。 – Munchkin9

+0

次に、DLLが見つからないという問題があるかもしれません。py2exeはDLLがシステムの一部であると考えているようですが、パッケージに含める必要があります。http://www.py2exe.org/index.cgi/OverridingCriteraForIncludingDlls 。生成されたexeファイルを解凍すると、その中にlibogg-0.dllファイルがありますか? –

+0

私は実際にlibogg-0.dllをチェックしていませんでしたが、そのWebサイトのハックはうまくいかず、また期待しませんでした。私が言ったように、exeファイルがフォルダ内(exeのすぐ隣)に直接含まれていても、exeファイルがlibrary.zipとして、またはexeファイルにパッケージされている場合は動作しません。したがって問題は欠けているものではなく、exeが適切にアクセスできなくなっています。 – Munchkin9

関連する問題