2017-05-13 1 views
0

내 파이 게임 응용 프로그램에서 .EXE를 실행 나 cx_Freeze에 msi로 컴파일 후 완벽하게 .exe 파일에서 실행하지만 바탕 화면 바로 가기에서 실행하면, 나는 오류 얻을 :나 cx_Freeze - 오류 바탕 화면 바로 가기

enter image description here

바로 가기 대상이 올바른지, 소리 파일은 모든 올바른 디렉토리에, 나는 모두 .wav.ogg 파일을 시도 등 비트 레이트 감소,하지만 아무것도 작동하는 것 같다 없다. 좌절감은 목표 위치를 열고 .exe을 수동으로 실행할 때 완벽하게 실행됩니다. 바탕 화면 바로 가기 방법으로 인해 오류가 발생하는 이유를 알 수 없습니다.

import sys 
import cx_Freeze 

base = None 
if sys.platform == "win32": 
    base = "Win32GUI" 

executables = [cx_Freeze.Executable(
    script="a_bit_racey.py", 
    base=base, 
    icon="car_icon.ico", 
    shortcutName="A bit Racey", 
    shortcutDir="DesktopFolder")] 

cx_Freeze.setup(
    name="A bit Racey", 
    options={"build_exe": {"packages": ["pygame"], 
          "include_files": ["racecar.png", "Crash.ogg", "Ecstasy_X.ogg", 
              "car_icon.ico"]}}, 
    executables=executables 
) 

은 내가 MSI 속성 바로 가기 요구 실종 : 내 setup.py 파일은 여기에

입니까? 나는 일주일 동안 붙어 있었어.

편집 :

enter image description here

나 cx_Freeze으로 생성 된 바탕 화면 바로 가기가 올바른 대상 위치를 가지고 있으며, 심지어 보인다 여기에 내가 거의 반응을 얻고로 더 잘 설명 할 수있는 스크린 샷입니다 .exe 파일을 실행했지만 오류가 발생했습니다. 그러나 대상 위치를 열고 .exe 파일을 두 번 클릭하면 완벽하게 작동합니다.

+0

http://cx-freeze.readthedocs.io/en/latest/faq.html#data-files 이 나 cx_Freeze의 문서가 믿고 나를 이끌 것처럼 그 절대 경로, 후드 사용되는 확인하십시오 . 명백히''include_files ''목록에서 이것은 상대적입니다. data_dir에 f (x)를 찾았습니까? – seanmus

+0

@seanmus : 예, 모든 데이터 파일의 이름은 build setup 스크립트의 일부로 "include_files"문에서 올바르게 지정됩니다. 나는 당신이 f (x)에 의하여 의미하는 것을 모른다. 그것에 대해 자세히 설명해 주시겠습니까? – JasonPy

+0

"데이터 파일 사용"섹션에서 docs에서 제공하는 것과 유사한 기능을 제공합니까? – seanmus

답변

1

cx-freeze.readthedocs.io/en/latest/faq.html#data-files

이 나 cx_Freeze의 문서가 믿고 나를 이끌 것처럼 그 절대 경로, 후드 아래에 사용되는을 확인하십시오. 분명히 "include_files"목록에서 이것은 상대적입니다. data_dir 찾기 기능이 있습니까? 문서에서 "데이터 파일 사용"섹션을 찾으십시오.

+0

추가 정보 :'find_data_file' 함수를 주 파일'.py'에 넣으십시오 (설정 파일 아님). 상단에'import os'를 추가해야합니다. 그리고로드해야 할 각 데이터 파일 (사운드 파일, 음악, 이미지 등에 적용)에 대해 함수를 호출하는 방법의 예가 있습니다 : 먼저 파일 경로에 대한 변수를 선언하십시오 : racecar_path = find_data_file ("racecar. png ")' 그리고 load 문을 'car_img = pygame.image로 변경하십시오.load (racecar_path)' 각 데이터 파일에 대해 동일한 작업을 수행하고,'.msi' 파일이 cx_Freeze로 빌드 된 후에 올바르게 설치되고 실행됩니다! – JasonPy

관련 문제