2012-03-21 3 views
3

현재 파이썬과 파이 게임으로 만든 게임을 꾸리려고하고 있는데 문제가 있습니다.두 게임의 장점 : 게임을위한 파이썬 패키지

패키지를 작성하는 데 py2exe을 사용하고 있는데 여기에 대한 질문이 있지만 훌륭한 해결책을 찾을 수 없습니다. 나는 압축 할 수 있고 온라인에 넣을 수있는 exe을 포함하는 폴더로 끝내고 싶습니다. setup.py을 실행하면 모든 의존성을 library.zip에 넣는 것을 제외하면 문제가 없습니다. 이것은 프로그램이 실행될 때 작동하지 않는다는 것을 의미합니다.

다른 누군가가이 문제를 겪고 있으며이를 해결하기 위해 "skip archive = true" 옵션을 사용하여 끝났습니다. 그리고 네, 그게 저에게도 도움이되는 반면에, 프로그램을 아무런 문제없이 실행할 수있는 방법이 있었으면서도 무수한 파일로 폴더를 어수선하게 만들지 않기를 바랬습니다.

내가 library.zip로 실행 해요 문제가 매우 정확합니다 :

내가 제대로 이해한다면, 프로그램이 도달 할 수 있음을 의미
ImportError: MemoryLoadLibrary failed loading pygame\mixer.pyd 

/파이 게임의 믹서 모듈을 찾을 수 있습니다. 여기

내가 현재 사용하고 (그 작동하지 않습니다) 설정 스크립트입니다 :

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

단일 실행을 생산하는 트릭을 어떻게해야 당신의 setup.py에서이 코드 (당신은 여전히있을 것이다 별도로 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

나는 두려워 작동하지 않습니다. 이전과 똑같은 문제. 내 문제는 하나의 실행 파일로 얻지는 못한다. (문제는 좋을 것이다.) 문제는 패키지 된 패키지에 액세스 할 수 없다는 것이다. 명령 프롬프트를 통해 프로그램을 실행하면 정상적으로 실행되지만 패키지 및 exe 실행할 경우 위에서 언급 한 오류가 발생합니다. 도움이 될만한 현재 설치 스크립트를 게시 할 것입니다. – Munchkin9

+0

그러면 dll이 누락 된 문제 일 수 있습니다. py2exe가 dll이 시스템에 포함되어 있다고 생각하는 것 같습니다. 패키지에 포함시켜야합니다. http://www.py2exe.org/index.cgi/OverridingCriteraForIncludingDlls . 생성 된 exe 파일을 압축 해제하면 그 안에 libogg-0.dll 파일이 있습니까? –

+0

libogg-0.dll을 실제로 확인하지는 않았지만 해당 웹 사이트의 해킹이 작동하지 않았으며 기대하지도 않았습니다. 나는 exe 파일이 폴더 (exe 바로 옆)에 직접 포함되지만 library.zip 또는 exe에 패키지로 포함되어있는 경우 작동하지 않는다고 말하면서 완벽하게 작동한다고 말한 바 있습니다. 그래서 문제는 누락 된 물건이 아니라 exe가 제대로 액세스 할 수 없다는 것입니다. – Munchkin9