cmod.ify

pyinstaller ์‚ฌ์šฉ๋ฒ• ๋ณธ๋ฌธ

BASIC/TIP

pyinstaller ์‚ฌ์šฉ๋ฒ•

modifyC 2023. 11. 2. 17:55
728x90
๋ฐ˜์‘ํ˜•

๐ŸŸข my_game.py

  • ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ ์„ค์ •
def resource_path(relative_path):
    try:
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

 

  • ๊ฒŒ์ž„ ๋กœ์ง ๋ถ€๋ถ„์— ์ž‘์„ฑ
pygame.mixer.music.load(resource_path('assets/bgm.mp3'))

 

๐ŸŸข directory

|_my_game.py
   |_assets
      |_bgm.mp3
|_icon.ico

 

๐ŸŸข ํ„ฐ๋ฏธ๋„

pyinstaller -w -F --add-data="assets;assets" --icon="icon.ico" my_game.py
  • --onefile ์˜ต์…˜๋„ ํ•œ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด ์ฃผ์ง€๋งŒ cmd์ฐฝ์ด ๋œจ๊ธฐ ๋•Œ๋ฌธ์— -w -F ์˜ต์…˜์„ ์„ค์ •ํ•ด ๊ฒŒ์ž„๋งŒ ๋œจ๋„๋ก ํ•œ๋‹ค.
  • ์ด๋ฏธ์ง€, ์†Œ๋ฆฌ ๋“ฑ ํŒŒ์ผ๋“ค์ด ๋‹ด๊ธด assets ํด๋”๋ฅผ ํ•œ ๋ฒˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค€๋‹ค.
  • --icon ์˜ต์…˜์„ ํ†ตํ•ด ๊ฒŒ์ž„ ํŒŒ์ผ ์•„์ด์ฝ˜์„ ๋ณ€๊ฒฝํ•ด ์ค€๋‹ค. icoํ™•์žฅ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋งŒ์•ฝ ๋‹ค๋ฅธ ํด๋”(ex: imgํด๋”)์— ์žˆ๋‹ค๋ฉด --icon="img/icon.ico"์™€ ๊ฐ™์ด ๊ฒฝ๋กœ ์„ค์ •์„ ํ•ด์•ผ ํ•œ๋‹ค.

 

๐ŸŸข ์ƒ์„ฑ๋œ ํŒŒ์ผ ํ™•์ธ

 

  • dist ํด๋”์—์„œ ํ™•์ธ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๊ฐ€๋” icon์ด ๊ธฐ๋ณธ์œผ๋กœ ๋ณด์ด๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋Š”๋ฐ ๊ทธ๋Ÿด ๋• ํŒŒ์ผ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
728x90
๋ฐ˜์‘ํ˜•