#python #json #py2exe
Вопрос:
Я пытаюсь создать простую игру с помощью pygame, и теперь, когда большая ее часть была протестирована, я хотел упаковать ее в исполняемый файл, чтобы другие могли протестировать.
В настоящее время моя проблема заключается в том, что у меня есть файлы конфигурации json, которые загружает скрипт, эти файлы json являются конфигурациями уровней, местности, предметов и т. Д. Он загружается вместе с open
функцией, а затем передается json.load
функции.
terrain_file = open(f'../terrain.json',)
terrain = json.load(terrain_file)
Этот код работает при запуске игры через командную строку/терминал. Однако, когда я пытаюсь создать исполняемый файл с py2exe, этот скрипт, похоже, ищет файл внутри library.zip
. Моя текущая настройка py2exe выглядит следующим образом:
from distutils.core import setup
import py2exe
import os
import glob, fnmatch
game_dir = os.path.dirname(os.path.realpath(__file__))
extra_files = [('.',['terrain.json','game.json'])]
setup(version='0.0.1', name='Simple Game', windows=[{'script':'game.py'}],data_files=extra_files, options={'py2exe':{'optimize':2,'skip_archive':True,'bundle_files':2}})
Это копирует мои файлы json в папку dist, но исполняемый файл все еще ищет файлы внутри library.zip
Любые советы о том, как либо изменить сценарий, чтобы он не искал его внутри library.zip или включите файлы json в library.zip
Комментарии:
1. PS:
terrain
иterrain_file
определение находится внутриlib/game.py
, которое неgame.py
определено в моем скрипте py2exe. Это просто набор классов, которые я использую для организации основного сценария.