编辑:我发现错误是资源无法打开。将目录复制到.exe没有修复的文件夹中。我尝试从.spec文件中删除资源,并且.exe文件的大小现在是9 MB而不是52 MB,所以我非常确定资源是否包含在内,但不知怎的,他们似乎无法由.exe打开。如果有任何问题,This是我的.spec文件 - 我只修改了Tree的东西,包括资源,.exe文件名和图标。
换句话说,现在的问题是:为什么exe不能找到我的游戏资源,我该怎么做才能解决这个问题?此外,我意识到我的资源文件夹有两个子文件夹 - 这是否意味着我必须以不同的方式编写树?
我用Python创建了一个游戏(也使用Pygame)并希望创建一个可执行文件,以便我可以分发它。 PyInstaller似乎是完美的,最终,经过一段时间的搜索,我发现了如何让它在this guide中运行。在我调整代码以使第2步工作后,我创建了.spec文件,添加了包含资源的目录(如步骤5,包括字体文件),将其复制到.spec文件所在的同一文件夹中最后我跑了
build.py game.spec
我找到了.exe文件的确切位置。但是,当我打开它时,它会在几秒钟后再次关闭,我认为它就在主菜单出现之前。我不确定它是否会再次出现问题,因为我确保将其包含在资源中......
不幸的是,在网上搜索解决方案对我来说根本没有帮助,特别是因为现在项目链接的一半已被打破。
如果有人知道这里出了什么问题(或者需要更多细节),请告诉我。
详细说明:
Python版本:2.7.7 32位
Pygame版本:1.9.3 32位
PyInstaller版本:1.5 32位
系统:Windows 8.1 64位(到目前为止32位程序都运行良好)
答案 0 :(得分:2)
尝试打开命令提示符并将exe拖入其中并按Enter键,这样您就会捕获错误(如果有的话),然后更新您的问题,更多信息==更多帮助。
我从未使用过pyinstaller,所以我无法帮助你。
另外我建议你试试py2exe,它与pygame很好用(至少对我而言)以后你可以用NSIS或Inno进行设置。
如果.exe无法永久保存高分(正如您在下面的评论中所述),请尝试以管理员身份运行exe,这可能只是写权限问题,或者可能是您的防病毒软件没有'允许它写(在Avast的沙箱,诺顿的未知/稀有文件)。
答案 1 :(得分:0)
我没有发现问题所在,但我确实设法让它发挥作用。我开始使用pip安装较新版本的PyInstaller(2.1)并再次完成相同的步骤,但这一次是在Scripts目录中运行pyi-makespec和pyi-build而不是makepec.py和build.py,因为那&#39我想,新版本的工作原理如何。起初它仍然会抱怨资源丢失,除非我从cmd运行它,但我认为这实际上是因为我忘记了第5步(makepec文件中的树)。由于某些原因,.exe无法永久保存高分,但除此之外,它还能完美地运行。