首页 > 解决方案 > py2exe 将 json 文件添加到 library.zip 或更改脚本以从指定位置加载文件

问题描述

我正在尝试使用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 中的任何建议

标签: pythonjsonpy2exe

解决方案


推荐阅读