py2exe добавление файлов json в library.zip или измените сценарий, чтобы загрузить файл из указанного местоположения

#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. Это просто набор классов, которые я использую для организации основного сценария.